为什么 PHP 应该使用 PDO 方式访问数据库 很多程序员都学习过如何使用 MySQL 或 MySQLi 扩展访问数据库 。在 PHP 5.1 中,有一个更好的方法 。PHP Data Objects (PDO) 提供了很多预处理语句的方法,且使用对象将使你的工作更有成效!
PDO 介绍
“PDO – PHP Data Objects – 是一个对多种数据库提供统一操作方法的数据库访问层 。”
它并不具备数据库特有的语法,但它将使切换数据库和平台更加容易,多数情况下,只需要简单修改链接字符串 。
这并非一篇完整教导如何使用SQL的教程 。它重要为那些现今仍在使用 mysql 或 mysqli 扩展的人,帮助他们跃至更具可移植性和强力的 PDO 。
数据库支持
此扩展可以使用 PDO 驱动编写过的所有数据库 。在本文书写时,下面的数据库支持已经实现:
PDO_DBLIB ( FreeTDS / Microsoft SQL Server / Sybase )
PDO_FIREBIRD ( Firebird/Interbase 6 )
PDO_IBM ( IBM DB2 )
PDO_INFORMIX ( IBM Informix Dynamic Server )
PDO_MYSQL ( MySQL 3.x/4.x/5.x )
PDO_OCI ( Oracle Call Interface )
PDO_ODBC ( ODBC v3 (IBM DB2, unixODBC and win32 ODBC) )
PDO_PGSQL ( PostgreSQL )
PDO_SQLITE ( SQLite 3 and SQLite 2 )
PDO_4D ( 4D )
你的系统不会也不必支持所有上面的驱动;下面是一个快速检查所支持数据库的方法:
print_r(PDO::getAvailableDrivers());
连接
不同数据库的连接方法可能稍有不同,下面是一些较为流行的数据库连接方法 。你将注意到,虽然数据库类型不同,前三种数据库的连接方式是相同的——而 SQLite 使用自己的语法 。
php连接mysql数据库原理是怎样的现在使用PDO链接数据库的较多
连接是通过创建 PDO 基类的实例而建立的 。不管使用哪种驱动程序 , 都是用 PDO 类名 。构造函数接收用于指定数据库源(所谓的 DSN)以及可能还包括用户名和密码(如果有的话)的参数 。
连接到 MySQL
?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?
如果有任何连接错误 , 将抛出一个 PDOException 异常对象 。如果想处理错误状态,可以捕获异常 , 或者选择留给通过 set_exception_handler() 设置的应用程序全局异常处理程序 。
处理连接错误
?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh-query('SELECT * from FOO') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e-getMessage() . "br/";
die();
}
?
如果应用程序不在 PDO 构造函数中捕获异常 , zend 引擎采取的默认动作是结束脚本并显示一个回溯跟踪,此回溯跟踪可能泄漏完整的数据库连接细节,包括用户名和密码 。因此有责任去显式(通过 catch 语句)或隐式(通过 set_exception_handler() )地捕获异常 。
连接数据成功后,返回一个 PDO 类的实例给脚本,此连接在 PDO 对象的生存周期中保持活动 。要想关闭连接,需要销毁对象以确保所有剩余到它的引用都被删除,可以赋一个 NULL 值给对象变量 。如果不明确地这么做 , PHP 在脚本结束时会自动关闭连接 。
关闭一个连接
?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// 在此使用连接
// 现在运行完成,在此关闭连接
$dbh = null;
?
很多 web 应用程序通过使用到数据库服务的持久连接获得好处 。持久连接在脚本结束后不会被关闭,且被缓存,当另一个使用相同凭证的脚本连接请求时被重用 。持久连接缓存可以避免每次脚本需要与数据库回话时建立一个新连接的开销,从而让 web 应用程序更快 。
php连接mysql数据库原理是怎样的?如果想把一个已做好的php网站 , 连接到已安装好的mysql数据库怎么做?外部语言只是与mysql库里面php为什么要连接数据库的函数建立关系php为什么要连接数据库,并操作、获取mysql库返回值,,所以php连接mysql原理这个问题没有什么好答的 , 第二个问题,在你的php网站要调用mysql数据库内容的地方,直接拿mysql函数库中的mysql_conetct等函数来操作就行了 。
【php为什么要连接数据库 php连接mysql数据库失败咋办】php为什么要连接数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php连接mysql数据库失败咋办、php为什么要连接数据库的信息别忘了在本站进行查找喔 。
推荐阅读
- css3禁止拖动,css禁止页面缩放
- flutter复用页面,flutter复选框
- sap冲销凭证,SAP冲销凭证没有选日期
- mysql中类型怎么用 mysql数据类型enum
- sap利润中心,SAP利润中心报表
- html5艺术,html5作品
- 枪神纪龙珠直播平台,枪神纪联赛
- vb.net动态编绎 vbnet raiseevent
- chatgpt生成音乐,生成歌曲