首页
学习
活动
专区
圈层
工具
发布

mysqli制作留言板

基础概念

mysqli 是 PHP 中的一个扩展,用于与 MySQL 数据库进行交互。它提供了面向对象和过程式的 API,使得开发者可以方便地执行 SQL 查询、处理结果集、管理事务等。

优势

  1. 性能:相比 mysql 扩展,mysqli 提供了更好的性能。
  2. 安全性:支持预处理语句,可以有效防止 SQL 注入攻击。
  3. 功能丰富:提供了事务处理、存储过程调用、多语句执行等功能。
  4. 面向对象:提供了面向对象的接口,使得代码更加清晰和易于维护。

类型

mysqli 主要有两种使用方式:

  1. 过程式:使用函数调用来执行 SQL 语句。
  2. 面向对象:使用类和对象的方法来执行 SQL 语句。

应用场景

mysqli 广泛应用于各种需要与 MySQL 数据库交互的 PHP 应用中,例如:

  • 网站后台管理系统
  • 电子商务平台
  • 社交网络
  • 博客系统

示例代码

以下是一个简单的使用 mysqli 制作留言板的示例:

数据库设计

代码语言:txt
复制
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 代码

代码语言:txt
复制
<?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();
?>

HTML 表单

代码语言:txt
复制
<!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>

可能遇到的问题及解决方法

  1. 连接失败
    • 确保数据库服务器正在运行。
    • 检查数据库连接参数(如主机名、用户名、密码、数据库名)是否正确。
    • 确保 PHP 的 mysqli 扩展已启用。
  • SQL 注入
    • 使用预处理语句(如示例代码中的 preparebind_param)来防止 SQL 注入。
  • 数据插入失败
    • 检查 SQL 语句是否正确。
    • 检查是否有足够的权限执行插入操作。
    • 查看错误信息(如示例代码中的 $stmt->error)以获取更多信息。

参考链接

通过以上内容,你应该能够了解如何使用 mysqli 制作一个简单的留言板,并解决一些常见问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券