用PHP mysql制作留言板代码与数据库图片
时间: 2024-03-14 07:46:53 浏览: 79
以下是用PHP和MySQL制作留言板的代码示例,包括上传图片到数据库的部分:
1. 创建数据库和表
首先,我们需要创建一个名为“message_board”的数据库,然后在该数据库中创建一个名为“messages”的表,该表包含id、name、email、message和image五个字段:
```
CREATE DATABASE message_board;
USE message_board;
CREATE TABLE messages (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
message TEXT NOT NULL,
image MEDIUMBLOB
);
```
2. 编写HTML表单
接下来,我们需要编写一个HTML表单,让用户可以输入姓名、电子邮件、留言和上传图片:
```
<form action="submit.php" method="post" enctype="multipart/form-data">
<label for="name">姓名:</label>
<input type="text" name="name" id="name" required><br>
<label for="email">电子邮件:</label>
<input type="email" name="email" id="email" required><br>
<label for="message">留言:</label>
<textarea name="message" id="message" required></textarea><br>
<label for="image">上传图片:</label>
<input type="file" name="image" id="image"><br>
<input type="submit" value="提交">
</form>
```
请注意,enctype属性必须设置为“multipart/form-data”,以便上传文件。
3. 编写PHP脚本
接下来,我们需要编写一个PHP脚本,将用户输入的数据插入到数据库中,并将上传的图片保存到数据库:
```
<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "message_board";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败:" . $conn->connect_error);
}
// 处理上传的图片
$image = NULL;
if ($_FILES['image']['size'] > 0) {
$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
}
// 插入数据到数据库
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$sql = "INSERT INTO messages (name, email, message, image) VALUES ('$name', '$email', '$message', '$image')";
if ($conn->query($sql) === TRUE) {
echo "留言成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
// 关闭连接
$conn->close();
?>
```
请注意,我们使用addslashes()函数将上传的图片转义,以避免在插入数据库时出现错误。
4. 显示留言
最后,我们需要编写另一个PHP脚本,从数据库中检索留言并将它们显示在网页上:
```
<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "message_board";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败:" . $conn->connect_error);
}
// 查询数据
$sql = "SELECT * FROM messages";
$result = $conn->query($sql);
// 显示留言
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<p><strong>" . $row["name"] . "</strong> (" . $row["email"] . ")</p>";
echo "<p>" . $row["message"] . "</p>";
if ($row["image"] != NULL) {
echo '<img src="data:image/jpeg;base64,' . base64_encode($row["image"]) . '">';
}
echo "<hr>";
}
} else {
echo "暂无留言";
}
// 关闭连接
$conn->close();
?>
```
请注意,我们使用base64_encode()函数将从数据库中检索的图片转换为Base64编码的字符串,并使用data URI方案在网页上显示图片。
希望这个示例可以帮助你了解如何使用PHP和MySQL制作留言板,并将图片上传到数据库。
阅读全文