欢迎访问宙启技术站
智能推送

使用PHP函数实现数据库连接和查询

发布时间:2023-06-09 18:43:08

在 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 数据库,并执行查询操作的过程,通过获取查询结果的一行,展示了查询结果的输出。