1. 简介
MySQLi是PHP的一种库,用于与MySQL数据库进行交互。与原始的MySQL扩展相比,MySQLi库提供了更多的功能和改进的性能。
2. 安装
MySQLi库是PHP的默认扩展,不需要额外安装。确保PHP的MySQLi扩展被启用。
3. 连接MySQL数据库
3.1 快速连接
使用MySQLi库连接MySQL数据库非常简单。以下是一个快速连接到MySQL数据库的示例:
<?php
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "mydatabase";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检查连接是否成功
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
echo "连接成功";
?>
在上面的示例中,我们使用了mysqli_connect()
函数来创建到MySQL数据库的连接。如果连接成功,我们会输出“连接成功”,否则将输出连接错误的详细信息。
3.2 连接参数
MySQLi连接函数mysqli_connect()
最常用的参数如下:
servername: MySQL服务器的主机名或IP地址。
username: 连接MySQL服务器的用户名。
password: 连接MySQL服务器的密码。
dbname: 连接到的数据库的名称,可选参数。
4. 查询MySQL数据库
4.1 执行查询
使用MySQLi库执行查询非常简单。以下是一个执行查询并输出结果的示例:
<?php
$sql = "SELECT * FROM users";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "ID: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 结果";
}
mysqli_close($conn);
?>
上面的示例中,我们首先定义了一个SQL查询,然后使用mysqli_query()
函数执行该查询。如果结果集中有记录,我们使用mysqli_fetch_assoc()
函数将结果集中的每一行作为关联数组输出。最后,我们使用mysqli_close()
函数关闭数据库连接。
4.2 参数化查询
为了避免SQL注入攻击,推荐使用参数化查询。以下是一个使用参数化查询的示例:
<?php
$name = "John Doe";
$sql = "SELECT * FROM users WHERE name = ?";
$stmt = mysqli_prepare($conn, $sql);
mysqli_stmt_bind_param($stmt, "s", $name);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "ID: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
} else {
echo "0 结果";
}
mysqli_stmt_close($stmt);
mysqli_close($conn);
?>
在上面的示例中,我们首先定义了一个带有占位符?
的SQL查询。然后使用mysqli_prepare()
函数为该查询创建一个准备好的语句。接下来,我们使用mysqli_stmt_bind_param()
函数将参数绑定到占位符,以及参数类型。然后我们执行准备好的语句并获取结果集。
5. 错误处理
MySQLi库提供了错误处理机制,以便在发生错误时捕获并处理这些错误。以下是一个简单的错误处理示例:
<?php
$sql = "SELECT * FROM non_existing_table";
$result = mysqli_query($conn, $sql);
if (!$result) {
echo "错误描述:" . mysqli_error($conn);
}
?>
上面的示例中,我们首先执行一个不存在的查询,然后使用mysqli_error()
函数获取最后一次错误的描述。
6. 总结
MySQLi库提供了在Linux系统下使用MySQL数据库的良好支持。通过连接数据库、执行查询和错误处理的示例,你可以更好地理解如何使用MySQLi库进行数据库操作。
注意:在实际的开发中,要始终注意安全性和性能优化。例如,验证和过滤用户输入,使用索引来优化查询等。