使用示例代码从 PHP 连接到 MySQL 的 3 种方法
要充分利用 MySQL 数据库,了解如何从自定义 PHP 程序连接到 MySQL 数据库非常重要。
本教程解释了以下三种方法以及适当的示例 PHP 程序,这将解释如何从 PHP 连接到 MySQL 数据库。
- 使用 mysqli 扩展连接(推荐)
- 使用 PDO 连接(推荐)
- 使用传统的遗留 mysql_ 函数进行连接(已弃用)
为此,您应该安装 php-mysql 包。
在基于 RedHat 的发行版(包括 CentOS)上,使用 yum 安装 php-mysql,如下所示。
yum install php-mysql
根据您的系统,以上将安装或更新以下依赖项:
php
php-cli
php-common
php-pdo
php-pgsql
安装完成后,phpinfo页面会显示mysql模块,如下图:
对于下面的所有示例,我们将连接到已经存在的 MySQL 数据库。
注意:这里解释的所有内容也适用于 MariaDB,因为它与 MySQL 相同。
1. 使用 mysqli 扩展从 PHP 连接
mysqli 代表 MySQL 改进。
请注意,在大多数发行版(例如:CentOS)上,php-mysqli 已经是 php-mysql 包的一部分。因此,您不必搜索和查找 php-mysqli 包。您所要做的就是安装 php-mysql 包以使 mysqli 扩展在您的系统上运行。
在 Apache DocumentRoot 下创建以下 mysqli.php 文件:
<?php
$conn = new mysqli("localhost", "root", "mySecretDBpass", "thegeekstuff");
if ($conn->connect_error) {
die("ERROR: Unable to connect: " . $conn->connect_error);
}
echo 'Connected to the database.<br>';
$result = $conn->query("SELECT name FROM employee");
echo "Number of rows: $result->num_rows";
$result->close();
$conn->close();
?>
在上面:
- mysqli - 此函数将使用 mysqli 扩展启动一个新连接。此函数将采用这四个参数
- 运行 MySQL 数据库的主机名
- 要连接的 MySQL 用户名
- mysql 用户的密码
- MySQL 数据库连接。
- 查询功能 - 使用它来指定您的 MySQL 查询。在此示例中,我们从员工数据库中选择姓名列。
- 最后,我们在结果中显示使用 num_rows 变量选择的行数。我们还关闭了结果和连接变量,如上所示。
当您从浏览器调用上述 mysqli.php 时,您将看到以下输出,这表明 PHP 能够连接到 MySQL 数据库并获取数据。
Connected to the database.
Number of rows: 6
2. 从 PHP MySQL PDO 扩展连接
PDO 代表 PHP 数据对象。
PDO_MYSQL 驱动器实现了 PHP 提供的 PDO 接口,用于从您的 PHP 程序连接到 MySQL 数据库。
在大多数 Linux 发行版(例如:CentOS 和 RedHat)上,php-pdo 包已经是 php-mysql 包的一部分。因此,您不必搜索和查找 php-pdo 包。您所要做的就是安装 php-mysql 包以使 PDO_MYSQL PHP 扩展在您的系统上运行。
在您的 Apache DocumentRoot 下创建以下 mysql-pdo.php 文件:
<?php
try {
$conn = new PDO("mysql:host=localhost;dbname=thegeekstuff", "root", "mySecretDBpass");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo 'Connected to the database.<br>';
$sql = 'SELECT name FROM employee';
print "Employee Name:<br>";
foreach ($conn->query($sql) as $row) {
print $row['name'] . "<br>";
}
$conn = null;
}
catch(PDOException $err) {
echo "ERROR: Unable to connect: " . $err->getMessage();
}
?>
在上面:
- new PDO – 这将创建一个新的 PDO 对象,它将采用以下三个参数:
- mysql 连接字符串:格式为“mysql:host=$hostname;dbname=$dbname”。在上面的例子中,db 运行在 localhost 上,我们正在连接到 Geekstuff 数据库。
- 要连接的 MySQL 用户名
- mysql 用户的密码
- $sql 变量 – 创建要执行的 sql 查询。在本例中,我们从员工表中选择姓名列。
- query($sql) – 在这里我们正在执行我们刚刚创建的 sql 查询。
- foreach – 在这里,我们循环遍历上述查询命令的输出并将其存储在 $row 变量中,然后我们使用 print 命令显示它。
- 在 MySQL PDO 中,要关闭连接,只需将 $conn 变量设置为空值。
当您从浏览器调用上述 mysqli.php 时,您将看到以下输出,这表明 PHP 能够连接到 MySQL 数据库并获取数据。
Connected to the database.
Employee Name:
Thomas
Jason
Mayla
Nisha
Randy
Ritu
3. 使用旧版 mysql_ 函数从 PHP 连接(已弃用)
仅当您使用旧版本的 PHP 并且由于某种原因无法将其升级到新版本时才使用此方法。
建议您使用上面显示的方法#2 和方法#3 代替此方法。我包含此方法仅供参考,不作为推荐使用。
自 PHP 5.5 版本起,此特定扩展已被弃用。但是从 PHP 7.0 版本开始,这甚至不起作用,因为它被删除了。
从 PHP 5.5 版本开始,当你使用这些函数时,会产生 E_DEPRECATED 错误。
在 Apache DocumentRoot 下创建以下 mysql-legacy.php 文件:
<?php
$conn = mysql_connect('localhost', 'root', 'mySecretDBpass');
mysql_select_db("thegeekstuff");
if (!$conn) {
die('ERROR: Unable to connect: ' . mysql_error());
}
echo 'Connected to the database.<br>';
$result = mysql_query('SELECT name FROM employee');
$row = mysql_fetch_row($result);
echo "Employee 1: ", $row[0], "<br>\n";
mysql_close($conn);
?>
在上面:
- mysql_connect 函数接受三个参数:1) 运行 MySQL 数据库的主机名 2) 要连接的 MySQL 用户名 3) mysql 用户的密码。这里它使用用户名 root 及其密码连接到在本地服务器上运行的 MySQL 数据库。
- mysql_select_db 函数——顾名思义,这将选择您想要连接的数据库。这相当于“使用”命令。在这个例子中,我们连接到数据库 thegeekstuff。
- mysql_query 函数 – 使用它来指定您的 MySQL 查询。在此示例中,我们从员工数据库中选择姓名列。
- mysql_fetch_row – 使用此函数从我们刚刚创建的 SQL 查询中获取行。
- 最后使用 mysql_close 命令关闭连接,如上所示。
当您从浏览器调用上述 mysql-legacy.php 时,您将看到以下输出,这表明 PHP 能够连接到 MySQL 数据库并获取数据。
Connected to the database.
Employee 1: Thomas
- 点赞
- 收藏
- 关注作者
评论(0)