在本教程中,我们将学习如何使用PHP PDO连接到MySQL数据库。
在创建到MySQL数据库服务器的连接之前,必须有:
假设我们有一个本地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
PDO使用了一个数据源名(DSN),它包含数据库服务器名、数据库名和其他参数,这些参数用于创建到数据库服务器的连接。不同的数据库系统需要不同的数据源名称。
要连接到MySQL,请使用下面的数据源名称:
mysql:host=host_name;dbname=db_name
MySQL数据源名称包含要连接到的主机名和数据库名。我们可以为示例数据库定义DSN,如下所示:
$dsn
"mysql:host=$host;dbname=$db"
下面的index.php脚本演示了如何使用root帐户连接到MySQL数据库服务器中的pdodemo数据库:
require_once
'dbconfig.php'
try
{
// 使用配置数据创建PDO连接
$conn
new
PDO(
,
);
// 如果成功连接到数据库,则显示消息
if
(
){
echo
"成功连接到数据库 <strong>$db</strong> !"
}
catch
(PDOException
$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'
原文链接:https://codingdict.com/