mysqli 是 PHP 中的一个扩展,用于与 MySQL 数据库进行交互。它提供了面向对象和过程式的 API,使得开发者可以方便地执行 SQL 查询、处理结果集、管理事务等。
mysql 扩展,mysqli 提供了更好的性能。mysqli 主要有两种使用方式:
mysqli 广泛应用于各种需要与 MySQL 数据库交互的 PHP 应用中,例如:
以下是一个简单的使用 mysqli 制作留言板的示例:
CREATE TABLE `messages` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL,
`message` TEXT NOT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "message_board";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 插入留言
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$message = $_POST['message'];
$stmt = $conn->prepare("INSERT INTO messages (name, message) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $message);
if ($stmt->execute()) {
echo "留言成功";
} else {
echo "留言失败: " . $stmt->error;
}
$stmt->close();
}
// 查询并显示留言
$sql = "SELECT id, name, message, created_at FROM messages ORDER BY created_at DESC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<div>";
echo "ID: " . $row["id"]. " - Name: " . $row["name"]. " - Message: " . $row["message"]. " - Time: " . $row["created_at"]. "<br>";
echo "</div>";
}
} else {
echo "没有留言";
}
$conn->close();
?><!DOCTYPE html>
<html>
<head>
<title>留言板</title>
</head>
<body>
<h1>留言板</h1>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<label for="name">姓名:</label>
<input type="text" id="name" name="name"><br><br>
<label for="message">留言:</label>
<textarea id="message" name="message"></textarea><br><br>
<input type="submit" value="提交">
</form>
</body>
</html>mysqli 扩展已启用。prepare 和 bind_param)来防止 SQL 注入。$stmt->error)以获取更多信息。通过以上内容,你应该能够了解如何使用 mysqli 制作一个简单的留言板,并解决一些常见问题。