mysql照片怎么保存
时间 : 2023-08-06 12:49:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

MySQL是一个开源的关系型数据库管理系统,在存储照片时,一般的做法是将照片的二进制数据保存在MySQL的表中的一个字段中。下面是用MySQL保存照片的步骤:

1. 创建数据库和表格:首先,使用MySQL命令行或者数据库管理工具(如phpMyAdmin)创建一个数据库,并在该数据库中创建一张表格用来存储照片。

CREATE DATABASE photo_db;

USE photo_db;

CREATE TABLE photos (

id INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(255),

image LONGBLOB

);

上述代码创建了一个名为`photo_db`的数据库,并在其中创建了一个名为`photos`的表格。`photos`表格包含三个字段:`id`、`name`和`image`。其中,`id`是自增长的主键,`name`用来保存照片的名称,`image`用来保存照片的二进制数据。

2. 插入照片数据:将照片的二进制数据读取出来,并插入`photos`表格中。

```php

<?php

// 假设已经获取到了照片的二进制数据

$photoData = file_get_contents('path/to/photo.jpg');

// 连接数据库

$servername = "localhost";

$username = "root";

$password = "password";

$dbname = "photo_db";

$conn = new mysqli($servername, $username, $password, $dbname);

// 将照片数据插入数据库

$stmt = $conn->prepare("INSERT INTO photos (name, image) VALUES (?, ?)");

$stmt->bind_param("ss", $name, $image);

$name = "photo.jpg";

$image = $photoData;

$stmt->execute();

// 关闭连接

$stmt->close();

$conn->close();

?>

上述代码中,首先使用`file_get_contents`函数读取照片的二进制数据,并保存在`$photoData`变量中。然后使用`mysqli`连接数据库,并使用`prepare`方法准备插入数据的SQL语句。使用`bind_param`方法将照片的名称和二进制数据绑定到SQL语句中的占位符上。最后通过调用`execute`方法执行插入操作。插入完成后,使用`close`方法关闭数据库连接。

3. 查询照片数据:如果需要查询已保存的照片数据,可以使用SQL语句来查询`photos`表格。

```php

<?php

// 连接数据库

$servername = "localhost";

$username = "root";

$password = "password";

$dbname = "photo_db";

$conn = new mysqli($servername, $username, $password, $dbname);

// 查询照片数据

$sql = "SELECT name, image FROM photos";

$result = $conn->query($sql);

// 显示照片

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {

echo "Name: " . $row["name"] . "<br>";

echo '<img src="data:image/jpeg;base64,' . base64_encode($row["image"]) . '"/>';

}

} else {

echo "0 results";

}

// 关闭连接

$conn->close();

?>

上述代码中,首先使用`mysqli`连接数据库,并执行查询照片数据的SQL语句。然后利用`fetch_assoc`方法将查询结果逐行取出,并使用`echo`输出照片的名称和用`<img>`标签显示照片,通过使用`base64_encode`将二进制数据转换为Base64编码的字符串。最后使用`close`方法关闭数据库连接。

通过以上步骤,就可以将照片的二进制数据存储到MySQL中,并且能够方便地查询和显示照片。当然,在实际应用中,还可以根据需要进行更多的处理和优化,例如对照片进行压缩、调整大小等操作。