个性化阅读
专注于IT技术分析

PHP PDO介绍和环境部署

点击下载

本文概述

PHP是一种开源通用脚本语言, 被广泛用于创建动态和交互式网页。 PHP可以访问各种关系数据库管理系统, 例如MYSQL, SQLite和PostgreSQL。 PHP 5.1版本提供了一个新的数据库连接抽象库, 即PHP数据对象(PDO)。

什么是PDO?

PDO指PHP数据对象, 它是PHP扩展, 它定义了轻量且一致的接口, 用于访问PHP中的数据库。它是一组PHP扩展, 提供了核心的PDO类和特定于数据库的驱动程序。每个数据库驱动程序都可以将特定于数据库的功能公开为实现PDO接口的常规扩展功能。

注意:我们不能通过使用PDO扩展本身来执行任何类型的数据库功能。要访问数据库服务器, 我们必须使用特定于数据库的PDO驱动程序。

PDO主要关注数据访问抽象, 而不是数据库抽象。它提供了数据访问抽象层, 这意味着, 无论我们使用哪个数据库, 我们都必须使用该数据库提供的相同功能来发出查询和获取数据。 PDO不提供数据抽象, 因为它不重写SQL或模拟缺少的功能。

PDO的优势

PDO提供了多种处理对象的方法, 并可检索准备好的语句, 从而使工作变得更加容易。它是PHP中的数据库访问工具, 通过它我们可以跨多个数据库进行统一访问。

PDO允许在不同的数据库和平台之间进行相对无缝的切换, 这可以通过更改连接字符串轻松完成。它不支持特定于数据库的语法。

PDO的一些优点如下:

数据库支持

PDO扩展名可以访问为PDO驱动程序编写的任何数据库。有几种可用的PDO驱动程序, 它们可用于FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle调用接口, Firebird / Interbase 6和PostgreSQL数据库等。

驱动程序并非在每个系统中都自动可用, 因此我们必须找到可用的驱动程序并在需要时添加它们。

数据库连接

有多种语法可用于建立数据库连接。这些语法取决于特定的数据库。使用PDO时, 必须将操作包装在try / catch块中, 并利用异常技术。

通常, 只需要创建一个连接, 就可以通过将数据库编程为空来关闭这些连接。

错误处理

PDO允许使用异常进行错误处理。为了产生异常, 可以将PDO强制设置为相关的错误模式属性。

共有三种错误模式, 即”静音”(默认), “警告”和”异常”。警告和异常在DRY编程中更有用。

  1. 静音-这是默认错误模式。
  2. 警告-这对于调试很有用。
  3. 例外-此模式允许进行优美的错误处理, 同时隐藏一个人可能用来利用你的系统的数据。

插入和更新

PDO将常用的插入和更新数据库操作简化为两步过程, 即

准备>> [绑定] >>执行。

通过这种方法, 我们可以充分利用PDO的准备好的语句, 该语句通过SQL注入防止恶意攻击。

预准备语句是预编译的SQL语句, 可以通过将该数据发送到服务器来多次执行。在占位符中使用的该数据会自动受到SQL注入攻击的保护。

使用PDO的好处

PDO是本机数据库驱动程序。使用PDO有一些好处, 如下所示:

  • 可用性-它包含许多辅助功能, 可进行自动例行操作。
  • 可重用性-它提供了访问多个数据库的统一API。
  • 安全性-它使用准备好的语句来防止SQL注入。预准备语句是预编译的SQL语句, 它将SQL语句的指令与数据分开。

PDO类别

有以下三种PDO类:

  • PDO-表示PHP与数据库之间的连接。
  • PDOStatement-它代表准备好的语句, 并在语句执行后设置关联的结果。
  • PDOException-它表示由PDO引发的错误。

PDO支持的数据库

  1. MySQL
  2. PostgreSQL的
  3. 甲骨文
  4. 火鸟
  5. MS SQL服务器
  6. Sybase公司
  7. Informix
  8. IBM公司
  9. FreeTDS
  10. SQLite的
  11. 笨拙的
  12. 4D

PDO与MySQLi的比较

要使用PHP访问数据库, 我们主要有两个选项-MySQLi和PDO(PHP数据对象)。 MySQLi是PHP的本机, 可提供更快的性能, 而大多数有经验的开发人员更喜欢使用PDO, 因为它支持多种数据库驱动程序。下面根据功能列出了PDO和MySQLi之间的差异。

Features PDO MySQLi
DB Support 12种不同的驱动程序 MySQL only
Connection Easy Easy
API OOP OOP +程序
Performance Fast Fast
Named Parameter Yes No
Object mapping Yes Yes
储存程序 Yes Yes
客户端准备的语句 Yes No
Security 比MySQLi更安全。 安全但不超过PDO。

在PDO或MySQLi之间应该首选哪个?

PDO和MySQLi都有各自的优势:

  • 如前所述, PDO可在12种不同的数据库系统上运行, 而MySQL只能与MySQL数据库一起使用。因此, 如果我们想将项目切换到另一个数据库, 则PDO使其变得容易。在MySQLi中, 我们必须重写整个代码。
  • PDO和MySQLi都是面向对象的, 但是MySQLi还提供了过程API。两者都支持预准备语句。预备语句对于Web应用程序安全性很重要, 因为它可以防止SQL注入。

需求

不需要外部库来构建此扩展。

安装过程

步骤1:从此处https://www.apachefriends.org/download.html下载适用于Windows, Linux和MacOS等不同平台的最新XAMPP服务器。

PHP PDO介绍和环境部署

注意:这里我们将仅讨论Windows OS的安装过程。

步骤2:按照以下步骤在系统上安装XAMPP服务器。

PHP PDO介绍和环境部署

步骤3:选择要安装的组件, 然后单击Next(下一步)按钮。

PHP PDO介绍和环境部署

步骤4:在要安装XAMPP的位置创建一个名为xampp的新文件夹。

PHP PDO介绍和环境部署

第5步:在此处单击下一步, 然后继续。 XAMPP服务器的安装将从此处开始。

PHP PDO介绍和环境部署

步骤6:成功安装XAMPP。单击完成按钮。

PHP PDO介绍和环境部署

步骤7:选择首选语言。

PHP PDO介绍和环境部署

步骤8:从此处运行Apache服务器和MySQL(按照给定的屏幕截图)。

PHP PDO介绍和环境部署

步骤9:现在, 从C:/xampp/php/php.ini(已安装XAMPP的位置)中打开php.ini, 并取消注释扩展名” php_pdo_mysql.dll”和” php_pdo.dll”(如果使用的是MySQL)数据库)或” php_pdo_oci.dll”(如果正在使用Oracle数据库)。现在, 开始使用数据库。在PHP 5.1更高版本中, 已经设置了它。

使用PDO

首先, 我们需要创建一个数据库, 因此从此处创建名为myDB的数据库。

PHP PDO介绍和环境部署

数据库连接

与数据库交互总是需要数据库连接。因此, 我们需要知道访问数据库的标识符, 即数据库的位置, 数据库名称, 用户名和密码。

现在, 在任何文本编辑器(例如记事本或notepad ++)中使用PDO创建数据库连接程序, 并使用coonection.php名称保存它。使用localhost / 80在XAMPP服务器上运行它。

例子

<?php
	$dbHost="localhost";
	$dbName="myDB";
	$dbUser="root";		 //by default root is user name.
	$dbPassword="";		//password is blank by default
	try{
		$dbConn= new PDO("mysql:host=$dbHost;dbname=$dbName", $dbUser, $dbPassword);
		Echo "Successfully connected with myDB database";
	} catch(Exception $e){
	Echo "Connection failed" . $e->getMessage();
	}
?>

输出

使用以下URL localhost / Xampp / pdoexample / connection.php /或在保存程序的位置在服务器上运行它。

PHP PDO介绍和环境部署

处理连接错误

如果存在任何连接错误, 则将引发PDOException对象。如果要处理错误条件, 我们可以捕获异常, 或者也可以将其留给可以由set_exception_handler()函数设置的全局异常处理程序。

例子

在此示例中, dbUser(user-id)是错误的, 因此它将抛出异常, 正如我们在输出中看到的那样。

<?php
	$dbHost="localhost";
	$dbName="myDB";
	$dbUser="rroot";		
	$dbPassword="";		
	try{
		$dbConn= new PDO("mysql:host=$dbHost;dbname=$dbName", $dbUser, $dbPassword);
	 	
		//Set the PDO error mode to exception.
		$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		Echo "Successfully connected with myDB database";
	} catch(Exception $e){
	Echo "Connection failed" . $e->getMessage();
	}
?>
PHP PDO介绍和环境部署

关闭数据库连接

<?php
	$dbHost="localhost";
	$dbName="myDB";
	$dbUser="root";		 //by default root is user name.
	$dbPassword="";		//password is blank by default
	try{
		$dbConn= new PDO("mysql:host=$dbHost;dbname=$dbName", $dbUser, $dbPassword);
		Echo "Successfully connected with myDB database";
	} catch(Exception $e){
	Echo "Connection failed" . $e->getMessage();
	}
// this command close the connection.
	$dbConn = null;	
?>

输出

PHP PDO介绍和环境部署

赞(0)
未经允许不得转载:srcmini » PHP PDO介绍和环境部署

评论 抢沙发

评论前必须登录!