PHP数据库函数的使用方法介绍
PHP是一种常用的服务器端脚本语言,用于开发Web应用程序。在Web应用程序中,数据库扮演着非常重要的角色,因为它们可以存储数据、检索数据和管理数据等。PHP提供了许多内置函数来处理数据库。本文将介绍常用的PHP数据库函数及其用法。
1. 连接数据库
连接到数据库是要使用PHP数据库函数的 步。PHP支持多种数据库,例如MySQL、PostgreSQL、SQLite、Oracle等。以下是一些常用的连接数据库的PHP函数:
mysqli_connect() – MySQLi扩展提供连接MySQL服务器的方法,这个函数返回一个MySQL连接对象。
PDO::__construct() – PDO扩展提供一个通用的构造函数,可以连接多种类型的数据库,如MySQL、SQLite、Oracle等。这个函数返回一个PDO对象。
例如,连接到MySQL数据库的PHP代码如下所示:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
2. 执行SQL语句
连接到数据库后,就可以执行SQL语句了。以下是一些可用于执行SQL语句的PHP函数:
mysqli_query() – MySQLi扩展提供执行MySQL查询的方法,这个函数返回一个结果集对象(对于SELECT、SHOW、DESCRIBE或EXPLAIN查询),或者是TRUE或FALSE(对于其他查询)。
PDO::query() – PDO扩展提供执行SQL语句的方法,这个方法返回一个PDOStatement对象,该对象可以迭代结果集。
例如,执行一个SELECT查询并输出结果的PHP代码如下所示:
<?php
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// 输出数据
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 结果";
}
mysqli_close($conn);
?>
3. 处理结果
在执行SQL语句后,可以使用以下PHP函数来处理结果:
mysqli_fetch_array (mysqli_result $result, $resulttype = MYSQLI_BOTH) – 返回一行作为关联数组、数字数组或二者兼有,这个函数每次调用都会返回下一行,没有更多行时返回NULL。
mysqli_num_rows (mysqli_result $result) – 返回结果集中行的数量。
PDOStatement::fetch(PDO::FETCH_ASSOC) – 返回一行作为关联数组。
PDOStatement::rowCount() – 返回结果集中行的数量。
例如,处理结果集的PHP代码如下所示:
// 处理 mysqli_fetch_array 函数的结果
if (mysqli_num_rows($result) > 0) {
// 输出数据
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 结果";
}
// 处理 PDOStatement::fetch 函数的结果
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
4. 错误处理
在使用PHP数据库函数时,经常需要进行错误处理。以下是一些常用的PHP数据库错误处理函数:
mysqli_connect_error() – 返回上一次连接错误的错误描述。
mysqli_error() – 返回出现错误时的错误描述。
PDO::errorCode() – 返回最后一次执行方法时发生的错误码。
PDO::errorInfo() – 返回最后一次执行方法时发生的错误信息。
例如,检查连接是否成功的PHP代码如下所示:
// 检查连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
5. 事务处理
事务是一组相互依赖的SQL语句,必须全部成功执行才能生效。以下是一些可以用于事务处理的PHP函数:
mysqli_begin_transaction() – 开始一个事务。
mysqli_commit() – 提交一个事务。
mysqli_rollback() – 回滚一个事务。
PDO::beginTransaction() – 开始一个事务。
PDO::commit() – 提交一个事务。
PDO::rollBack() – 回滚一个事务。
例如,使用MySQLi扩展处理事务的PHP代码如下所示:
// 设置自动提交为关闭
mysqli_autocommit($conn, FALSE);
// 执行一些 SQL
mysqli_query($conn, "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')");
mysqli_query($conn, "UPDATE MyGuests SET lastname='Doe' WHERE id=2");
// 提交事务
mysqli_commit($conn);
// 关闭连接
mysqli_close($conn);
6. 预处理语句
预处理语句是指内置了占位符(?)的SQL语句,可以在执行SQL语句之前为占位符提供实际的值。以下是一些可以用于预处理语句的PHP函数:
mysqli_prepare() – 准备一条SQL语句,该语句包含占位符,这个函数返回一个statement对象,它可以绑定参数并执行语句。
PDO::prepare() – 准备一条SQL语句,该语句包含占位符,这个方法返回一个PDOStatement对象,它可以设置参数并执行语句。
例如,使用MySQLi扩展处理预处理语句的PHP代码如下所示:
// 准备预处理语句 $stmt = mysqli_prepare($conn, "INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)"); // 绑定参数 mysqli_stmt_bind_param($stmt, "sss", $firstname, $lastname, $email); // 设置参数并执行语句 $firstname = "John"; $lastname = "Doe"; $email = "john@example.com"; mysqli_stmt_execute($stmt); mysqli_close($conn);
以上便是常见PHP数据库函数的用法介绍,通过使用这些函数,可以轻松地连接到数据库、执行SQL语句、处理结果、处理错误、处理事务以及处理预处理语句。对于开发Web应用程序来说,这些函数无疑是非常重要的。
