使用PHP函数实现数据库连接和查询
在 PHP 中,连接数据库和执行查询通常需要使用数据库扩展库。常用的数据库扩展库有 MySQLi 和 PDO,其中 MySQLi 通过原生函数提供对 MySQL 数据库的访问,而 PDO 提供了通用的数据库访问接口,支持多种数据库类型。
下面我们以 MySQL 数据库为例,介绍如何使用 PHP 函数实现数据库连接和查询。
## 连接数据库
我们可以使用 MySQLi 或 PDO 中的一个来连接 MySQL 数据库。
### 使用 MySQLi 连接数据库
使用 MySQLi 连接数据库,需要使用 mysqli_connect() 函数。
// 连接 MySQL 数据库 $conn = mysqli_connect($servername, $username, $password); // 指定连接的数据库 mysqli_select_db($conn, $dbname);
其中,$servername 是数据库服务器的主机名或 IP 地址,$username 是连接数据库时使用的用户名,$password 是连接数据库时使用的密码,$dbname 是要连接的数据库名。
如果连接成功,则 $conn 将包含与 MySQL 数据库的连接,否则返回 FALSE。
### 使用 PDO 连接数据库
使用 PDO 连接数据库,需要使用 PDO 对象。
// 连接 MySQL 数据库
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
//设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
其中,$servername 是数据库服务器的主机名或 IP 地址,$username 是连接数据库时使用的用户名,$password 是连接数据库时使用的密码,$dbname 是要连接的数据库名。
如果连接成功,则 $conn 将包含与 MySQL 数据库的连接,否则将抛出一个 PDOException 异常。
## 执行查询
连接到 MySQL 数据库后,我们可以执行查询操作。
### 使用 MySQLi 查询数据库
使用 MySQLi 查询数据库,需要使用 mysqli_query() 函数。
// 执行查询 $result = mysqli_query($conn, $sql);
其中,$conn 是连接 MySQL 数据库的连接对象,$sql 是要执行的 SQL 查询语句。
如果查询成功,则 $result 将包含一个 mysqli_result 对象,否则返回 FALSE。
通过 mysqli_fetch_array() 或 mysqli_fetch_assoc() 函数可获取查询结果的一行或多行。
// 获取查询结果的一行 $row = mysqli_fetch_array($result);
其中,$result 是查询结果对象。
### 使用 PDO 查询数据库
使用 PDO 查询数据库,需要使用 PDO 执行查询语句的方法。
// 执行查询 $stmt = $conn->query($sql);
其中,$conn 是连接 MySQL 数据库的 PDO 对象,$sql 是要执行的 SQL 查询语句。
如果查询成功,则 $stmt 将包含一个 PDOStatement 对象,否则将抛出一个 PDOException 异常。
通过 fetch() 或 fetchAll() 方法可获取查询结果的一行或多行。
// 获取查询结果的一行 $row = $stmt->fetch();
其中,$stmt 是查询结果对象。
## 完整代码实例
下面是一个完整的 PHP 代码示例,用于连接 MySQL 数据库并检索数据:
<?php
// 连接 MySQL 数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "mydb";
// 使用 MySQLi 连接数据库
$conn = mysqli_connect($servername, $username, $password);
mysqli_select_db($conn, $dbname);
// 使用 PDO 连接数据库
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
// 执行查询
$sql = "SELECT id, name, email FROM mytable";
$result = mysqli_query($conn, $sql);
$stmt = $conn->query($sql);
// 获取查询结果的一行
$row1 = mysqli_fetch_assoc($result);
$row2 = $stmt->fetch();
echo "使用 MySQLi 查询结果为 id:" . $row1["id"] . ",name:" . $row1["name"] . ",email:" . $row1["email"];
echo "使用 PDO 查询结果为 id:" . $row2["id"] . ",name:" . $row2["name"] . ",email:" . $row2["email"];
?>
这个 PHP 示例展示了使用 MySQLi 和 PDO 连接 MySQL 数据库,并执行查询操作的过程,通过获取查询结果的一行,展示了查询结果的输出。
