PHP 与 数据库

115 阅读4分钟

本文正在参加「技术专题19期 漫谈数据库技术」活动 以一段用到的PHP数据库代码为例

php连接数据库主要有下面这些方式: mysql 库 这个已经废弃 不支持面向对象 ;mysqli 扩展 是上面的升级,支持面向对象,只能连接mysql ;PDO也支持面向对象,能连接多种数据库。
以后操作的时候根据实际情况选择。

如果在UNIX计算机上使用PHP,并且希望连接到Windows计算机上的Access Base,则需要UNIX ODBC驱动程序。»OpenLink软件为UNIX提供了可以做到这一点的ODBC驱动程序。

另一种解决方案是使用具有Windows ODBC驱动程序的SQL Server并使用它存储数据,您可以从Microsoft Access(使用ODBC)和PHP(使用随附的驱动程序)使用这些驱动程序,或者使用Access和PHP都可以处理的中间文件格式,如原始文件或数据库。关于这一点,OpenLink软件的Tim Hayes写道:

当您可以直接使用PHP的ODBC到您的数据库时,使用另一个数据库作为中介不是一个好主意,例如使用OpenLink驱动程序。如果需要中间文件格式,OpenLink已经为NT、Linux和其他UNIX平台发布了Virtuoso(虚拟数据库引擎)。请访问我们的网站免费下载。

一个行之有效的解决方案是在Windows下使用MySQL及其ODBC驱动程序,并同步数据库。

开发需要与MySQL数据库交互的PHP应用程序时可用的选项。

什么是API?

应用程序编程接口(API)定义了应用程序执行所需任务所需调用的类、方法、函数和变量。对于需要与数据库通信的PHP应用程序,通常通过PHP扩展公开必要的API。

API可以是过程式的,也可以是面向对象的。使用过程API,可以调用函数来执行任务,使用面向对象API,可以实例化类,然后对生成的对象调用方法。在这两者中,后者通常是首选的接口,因为它更现代,并导致更好的组织代码。

在编写需要连接到MySQL服务器的PHP应用程序时,有几个API选项可用。本文档讨论了可用的解决方案以及如何为应用程序选择最佳解决方案。

什么是连接器?

在MySQL文档中,术语connector是指允许应用程序连接到MySQL数据库服务器的软件。MySQL提供了多种语言的连接器,包括PHP。

如果您的PHP应用程序需要与数据库服务器通信,则需要编写PHP代码来执行连接到数据库服务器、查询数据库以及其他与数据库相关的功能等活动。需要软件提供PHP应用程序将使用的API,并处理应用程序和数据库服务器之间的通信,必要时可能使用其他中间库。该软件通常称为连接器,因为它允许应用程序连接到数据库服务器。

什么是驱动程序?

驱动程序是一种设计用于与特定类型的数据库服务器通信的软件。驱动程序还可以调用库,例如MySQL客户端库或MySQL本机驱动程序。这些库实现了用于与MySQL数据库服务器通信的低级协议。

作为示例,PHP数据对象(PDO)数据库抽象层可以使用几个特定于数据库的驱动程序之一。它提供的驱动程序之一是PDO MYSQL驱动程序,它允许它与MYSQL服务器交互。

有时人们会互换使用术语连接器和驱动程序,这可能会令人困惑。在MySQL相关文档中,术语driver是为提供连接器包的数据库特定部分的软件保留的。

什么是扩展?

在PHP文档中,您将遇到另一个术语-扩展。PHP代码由一个核心组成,具有核心功能的可选扩展。PHP的MySQL相关扩展(如mysqli扩展和PDO MySQL驱动程序扩展)是使用PHP扩展框架实现的。

扩展通常向PHP程序员公开API,以允许以编程方式使用其设施。然而,一些使用PHP扩展框架的扩展不会向PHP程序员公开API。

例如,PDO MySQL驱动程序扩展不向PHP程序员公开API,而是提供其上PDO层的接口。

术语API和扩展不应被视为相同的意思,因为扩展不一定向程序员公开API。

php连接到数据库一般还会考虑用到Navicat 和 Phpstudy

public function login(account=,account = '', password = '',ip=,ip = '',ua = '') { user=REDIRECT(XXDB/Accountinfo)>where([email=>user = REDIRECT('XXDB/Accountinfo')->where(['email'=>account])->find(); if(!user){ return this->_Return(false, Code::EXAMPLE); }

    在这段PHP代码中,通过重定向到某数据库XXDB 施行where语句 查找,这与一般数据库查找流程无异。