php实现mysqli
PHP 使用 MySQLi 扩展连接数据库
MySQLi(MySQL Improved)是 PHP 中用于与 MySQL 数据库交互的扩展,支持面向对象和面向过程两种编程风格。以下是使用 MySQLi 进行数据库操作的详细方法。
连接 MySQL 数据库
面向对象风格
通过创建 mysqli 实例连接数据库:
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
面向过程风格
使用 mysqli_connect() 函数:

$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
执行 SQL 查询
查询数据
使用 query() 方法执行 SELECT 语句:
$sql = "SELECT id, name FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
}
} else {
echo "0 结果";
}
插入数据
通过预处理语句防止 SQL 注入:

$stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
$name = "John Doe";
$email = "john@example.com";
$stmt->execute();
echo "新记录插入成功";
$stmt->close();
关闭数据库连接
操作完成后需手动关闭连接:
$conn->close();
错误处理
通过异常捕获或错误检查确保操作安全:
try {
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_errno) {
throw new Exception("连接失败: " . $conn->connect_error);
}
} catch (Exception $e) {
echo $e->getMessage();
}
事务处理
使用事务确保数据一致性:
$conn->autocommit(false);
try {
$conn->query("UPDATE accounts SET balance = balance - 100 WHERE user_id = 1");
$conn->query("UPDATE accounts SET balance = balance + 100 WHERE user_id = 2");
$conn->commit();
echo "事务成功";
} catch (Exception $e) {
$conn->rollback();
echo "事务失败: " . $e->getMessage();
}
注意事项
- 始终使用预处理语句处理用户输入,避免 SQL 注入。
- 在生产环境中隐藏数据库凭据(如通过环境变量或配置文件)。
- 及时释放查询结果(
$result->free())和关闭连接以节省资源。
MySQLi 提供了比旧版 MySQL 扩展更强大的功能,包括预处理语句、事务支持和面向对象接口,是 PHP 开发中推荐的选择。






