PDO连接到MySQL
时间:2018-11-15 15:21:05 来源:igfitidea点击:
在本教程中,我们将学习如何使用PHP PDO连接到MySQL数据库。
前提条件
在创建到MySQL数据库服务器的连接之前,必须有:
- 在本地系统或远程服务器中安装MySQL数据库服务器。
- MySQL数据库服务器中的一个示例数据库。
- 一个包含用户名和密码的MySQL帐户,可以访问sample数据库。
假设我们有一个本地MySQL数据库服务器,它包含了一个测试数据库pdodemo和一个用户名为root和密码为空的帐户,我们可以将这些参数放入一个名为dbconfig.php的数据库配置文件中,如下所示:
<?php $host='localhost'; $db = 'pdodemo'; $username = 'root'; $password = '';
我们将在需要访问此配置信息的其他脚本文件中使用require_once()函数来包含dbconfig.php配置文件。
要检查是否启用了PDO MySQL驱动程序,需要打开php.ini文件,删除前面的分号(;)来取消下面这一行的注释:
extension=php_pdo_mysql.dll
MySQL数据源名称
PDO使用了一个数据源名(DSN),它包含数据库服务器名、数据库名和其他参数,这些参数用于创建到数据库服务器的连接。不同的数据库系统需要不同的数据源名称。
要连接到MySQL,请使用下面的数据源名称:
mysql:host=host_name;dbname=db_name
MySQL数据源名称包含要连接到的主机名和数据库名。我们可以为示例数据库定义DSN,如下所示:
$dsn = "mysql:host=$host;dbname=$db";
连接到MySQL
下面的index.php脚本演示了如何使用root帐户连接到MySQL数据库服务器中的pdodemo数据库:
<?php require_once 'dbconfig.php'; $dsn= "mysql:host=$host;dbname=$db"; try{ // 使用配置数据创建PDO连接 $conn = new PDO($dsn, $username, $password); // 如果成功连接到数据库,则显示消息 if($conn){ echo "成功连接到数据库 <strong>$db</strong> !"; } }catch (PDOException $e){ // 报告错误消息 echo $e->getMessage(); }
如果一切设置正确,你会看到以下信息:
成功连接到数据库 pdodemo
错误诊断
当你连接到MySQL数据库时会遇到一些常见的问题,如下所示:
如果在php.ini文件中没有启用MySQL驱动,你将得到错误消息:
could not find driver
如果提供的数据库帐户不正确,则会收到以下错误消息:
SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’ (using password: YES)
如果提供的数据库主机名无效,将显示以下错误消息:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No such host is known.
如果提供无效的数据库名称或MySQL数据库服务器中不存在数据库名称,则会得到以下错误消息:
SQLSTATE[HY000] [1049] Unknown database 'pdodemo'