mysqli 是 PHP 中的一个扩展,用于与 MySQL 数据库进行交互。它提供了面向对象和过程式的 API,使得开发者可以方便地执行 SQL 查询、处理结果集等操作。
mysqli 是对 MySQL 数据库原生协议的封装,性能较高。mysqli 主要有两种使用方式:
mysqli 广泛应用于各种需要与 MySQL 数据库交互的场景,如 Web 开发、数据分析、自动化脚本等。
以下是一个简单的使用 mysqli 实现留言板的示例:
CREATE TABLE `messages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`content` text NOT NULL,
`timestamp` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;<?php
$host = 'localhost';
$user = 'username';
$password = 'password';
$dbname = 'database_name';
// 连接数据库
$conn = mysqli_connect($host, $user, $password, $dbname);
if (!$conn) {
die('连接失败: ' . mysqli_connect_error());
}
// 处理留言提交
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['submit'])) {
$name = mysqli_real_escape_string($conn, $_POST['name']);
$content = mysqli_real_escape_string($conn, $_POST['content']);
$sql = "INSERT INTO messages (name, content) VALUES ('$name', '$content')";
if (mysqli_query($conn, $sql)) {
echo '留言成功!';
} else {
echo '留言失败: ' . mysqli_error($conn);
}
}
// 获取并显示留言
$sql = "SELECT * FROM messages ORDER BY timestamp DESC";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
echo "<p><strong>{$row['name']}</strong> - {$row['timestamp']}<br>{$row['content']}</p>";
}
}
// 关闭连接
mysqli_close($conn);
?><?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);
}
// 处理留言提交
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['submit'])) {
$name = $conn->real_escape_string($_POST['name']);
$content = $conn->real_escape_string($_POST['content']);
$sql = "INSERT INTO messages (name, content) VALUES ('$name', '$content')";
if ($conn->query($sql) === TRUE) {
echo '留言成功!';
} else {
echo '留言失败: ' . $conn->error;
}
}
// 获取并显示留言
$sql = "SELECT * FROM messages ORDER BY timestamp DESC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<p><strong>{$row['name']}</strong> - {$row['timestamp']}<br>{$row['content']}</p>";
}
}
// 关闭连接
$conn->close();
?>mysqli_real_escape_string 或预处理语句来防止 SQL 注入。mysqli_real_escape_string 对用户输入进行转义。通过以上示例和解释,你应该能够使用 mysqli 实现一个简单的留言板功能,并了解其基础概念、优势、类型和应用场景。
没有搜到相关的沙龙