📅  最后修改于: 2020-09-29 00:53:19             🧑  作者: Mango
PHP是一种开源通用脚本语言,被广泛用于创建动态和交互式网页。PHP可以访问各种关系数据库管理系统,例如MYSQL,SQLite和PostgreSQL。PHP5.1版本提供了一个新的数据库连接抽象库,即PHP数据对象(PDO)。
PDO是指PHP数据对象,它是PHP扩展,它定义了轻量且一致的接口,用于访问PHP中的数据库。它是一组PHP扩展,提供了核心的PDO类和特定于数据库的驱动程序。每个数据库驱动程序都可以将特定于数据库的功能公开为实现PDO接口的常规扩展函数。
注意:我们不能通过使用PDO扩展本身来执行任何类型的数据库函数 。要访问数据库服务器,我们必须使用特定于数据库的PDO驱动程序。
PDO主要关注数据访问抽象,而不是数据库抽象。它提供了数据访问抽象层,这意味着,无论我们使用哪个数据库,我们都必须使用该数据库提供的相同功能来发出查询和获取数据。PDO不提供数据抽象,因为它不重写SQL或模拟缺少的功能。
PDO提供了多种处理对象的方法,并检索了使工作变得更加容易的准备好的语句。它是PHP中的数据库访问工具,通过它我们可以跨多个数据库进行统一访问。
PDO允许在不同的数据库和平台之间进行相对无缝的切换,这可以通过更改连接字符串轻松实现。它不支持特定于数据库的语法。
PDO的一些优点如下:
PDO是本机数据库驱动程序。使用PDO有一些好处,如下所示:
有以下三种PDO类:
要使用PHP访问数据库,我们主要有两个选项-MySQLi和PDO(PHP数据对象)。MySQLi是PHP的本机,可提供更快的性能,而大多数有经验的开发人员更喜欢使用PDO,因为它支持多种数据库驱动程序。下面根据功能列出了PDO和MySQLi之间的差异。
Features | PDO | MySQLi |
---|---|---|
DB Support | 12 different drivers | MySQL only |
Connection | Easy | Easy |
API | OOP | OOP + Procedure |
Performance | Fast | Fast |
Named Parameter | Yes | No |
Object mapping | Yes | Yes |
Stored Procedure | Yes | Yes |
Client-Side Prepared Statements | Yes | No |
Security | More secure than MySQLi. | Secure but not more than PDO. |
PDO和MySQLi都有各自的优势:
无需外部库即可构建此扩展。
步骤1:从此处https://www.apachefriends.org/download.html下载适用于Windows,Linux和MacOS等不同平台的最新XAMPP服务器。
注意:这里我们将仅讨论Windows OS的安装过程。
步骤2:按照以下步骤在系统上安装XAMPP服务器。
步骤3:选择要安装的组件,然后单击Next(下一步)按钮。
步骤4:在要安装XAMPP的位置创建一个名为xampp的新文件夹。
第5步:在此处单击下一步,然后继续。XAMPP服务器的安装将从此处开始。
步骤6:成功安装XAMPP。单击完成按钮。
步骤7:选择首选语言。
步骤8:从此处运行Apache服务器和MySQL(按照给定的屏幕截图)。
步骤9:现在,从C:/xampp/php/php.ini(已安装XAMPP的位置)中打开php.ini,并取消注释扩展名“php_pdo_mysql.dll”和“php_pdo.dll”(如果使用的是MySQL)数据库)或“php_pdo_oci.dll”(如果正在使用Oracle数据库)。现在,开始使用数据库。在PHP5.1较高版本中,已经设置了它。
首先,我们需要创建一个数据库,因此从此处创建名为myDB的数据库。
与数据库交互总是需要数据库连接。因此,我们需要知道访问数据库的标识符,即数据库的位置,数据库名称,用户名和密码。
现在,在任何文本编辑器(例如记事本或notepad++)中使用PDO创建数据库连接程序,并使用coonection.php名称保存它。使用localhost/80在XAMPP服务器上运行它。
getMessage();
}
?>
输出量
使用以下URLlocalhost/Xampp/pdoexample/connection.php/或在保存程序的位置在服务器上运行它。
如果存在任何连接错误,则将引发PDOException对象。如果我们想处理错误条件,我们可以捕获异常,或者也可以将其留给可以由set_exception_handler()函数设置的全局异常处理程序。
在此示例中,dbUser(user-id)是错误的,因此它将抛出异常,正如我们在输出中看到的那样。
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Echo "Successfully connected with myDB database";
} catch(Exception $e){
Echo "Connection failed" . $e->getMessage();
}
?>
getMessage();
}
// this command close the connection.
$dbConn = null;
?>
输出量