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

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 注入:
    • 使用预处理语句(如示例代码中的 prepare 和 bind_param)来防止 SQL 注入。
  • 数据插入失败:
    • 检查 SQL 语句是否正确。
    • 检查是否有足够的权限执行插入操作。
    • 查看错误信息(如示例代码中的 $stmt->error)以获取更多信息。

参考链接

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

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

相关·内容

35分19秒

PHP教程 PHP项目实战 24.MySQLI预处理介绍 学习猿地

6分44秒

PHP教程 PHP项目实战 18.PHP的MySQLI扩展模块安装及连接步骤 学习猿地

8分59秒

Stable Diffusion 视频制作 mov2mov视频制作

31分46秒

最新PHP基础常用扩展功能 33.文本式留言板实现 学习猿地

18分42秒

Python MySQL数据库开发 24 web留言板列表显示 学习猿地

15分33秒

Python MySQL数据库开发 25 web留言板的添加表单 学习猿地

10分40秒

Python MySQL数据库开发 26 web留言板的留言入库 学习猿地

6分51秒

Python MySQL数据库开发 27 web留言板的留言删除 学习猿地

4分46秒

使用vue制作todolist!

22.2K
3分15秒

动画制作——雨季冲浪

50秒

动态特效头像制作

20秒

使用Workbuddy制作视频

领券