mysqli
是 PHP 中的一个扩展,用于与 MySQL 数据库进行交互。它是 MySQL Improved Extension 的缩写,提供了对 MySQL 数据库的面向对象和过程式接口。mysqli
扩展支持最新的 MySQL 功能,包括预处理语句、事务、多语句执行等。
mysqli
比旧的 mysql
扩展更快,因为它使用了更高效的数据库连接和查询执行机制。mysqli
提供了两种接口:
mysqli
适用于需要与 MySQL 数据库进行交互的各种应用场景,包括但不限于:
以下是一个使用 mysqli
进行数据库连接和查询的示例:
<?php
$host = 'localhost';
$user = 'username';
$password = 'password';
$dbname = 'database_name';
// 创建连接
$conn = new mysqli($host, $user, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 执行查询
$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 结果";
}
$conn->close();
?>
<?php
$host = 'localhost';
$user = 'username';
$password = 'password';
$dbname = 'database_name';
// 创建连接
$conn = mysqli_connect($host, $user, $password, $dbname);
// 检查连接
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
// 执行查询
$sql = "SELECT id, name 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 查询中,导致安全漏洞。
解决方法:
$stmt = $conn->prepare("SELECT id, name FROM users WHERE id = ?");
$stmt->bind_param("i", $userId);
$stmt->execute();
$result = $stmt->get_result();
原因:可能是查询条件不正确,或者表中没有数据。
解决方法:
通过以上详细解答,希望你能更好地理解和使用 mysqli
函数。如果有更多具体问题,欢迎继续提问。
领取专属 10元无门槛券
手把手带您无忧上云