php数据库怎么插入图片
时间 : 2023-03-27 11:14:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

在PHP中插入图片到数据库通常有两种方式:

第一种方式:将图片存储到服务器上,只在数据库中插入图片名;

第二种方式:将图片以二进制方式直接存储到数据库中。

以下分别介绍这两种方式的实现步骤:

方式一:将图片存储到服务器上,只在数据库中插入图片名

1.首先需要在数据库中创建一个表,用于存储图片相关的信息,例如图片ID、图片名称、图片路径等信息:

CREATE TABLE images(

id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(255) NOT NULL,

path VARCHAR(255) NOT NULL

);

2.在HTML页面中添加上传图片的表单:

<form method="post" action="insert_image.php" enctype="multipart/form-data">

<input type="file" name="image">

<input type="submit" value="上传">

</form>

3.创建 insert_image.php 文件,该文件用于接收表单数据并将图片存储到服务器上,并将图片名称和路径插入到数据库中:

$target_dir = "images/"; // 图片存储路径

$target_file = $target_dir . basename($_FILES["image"]["name"]); // 获取上传图片的路径

$name = $_POST["name"]; // 获取图片名称

// 如果 image 变量设置并且上传成功

if(isset($_FILES["image"]) && move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)){

// 插入图片名和路径到数据库

$query = "INSERT INTO images (name, path) VALUES ('$name', '$target_file')";

mysqli_query($conn, $query);

echo "图片上传成功!";

}else{

echo "上传失败!";

}

4.最后,在HTML页面中显示图片时,可以通过数据库中存储的图片名和路径来访问图片:

$query = "SELECT * FROM images WHERE id = $id";

$result = mysqli_query($conn, $query);

$row = mysqli_fetch_assoc($result);

echo "<img src='".$row["path"]."' alt='".$row["name"]."'>";

方式二:将图片以二进制方式直接存储到数据库中

1.在数据库中创建一个表,用于存储图片相关的信息,例如图片ID、图片名称和图片内容等信息:

CREATE TABLE images(

id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(255) NOT NULL,

content LONGBLOB NOT NULL

);

2.在HTML页面中添加上传图片的表单:

<form method="post" action="insert_image.php" enctype="multipart/form-data">

<input type="file" name="image">

<input type="submit" value="上传">

</form>

3.创建 insert_image.php 文件,该文件用于接收表单数据并将图片以二进制方式存储到数据库中:

$name = $_POST["name"]; // 获取图片名称

$image = addslashes(file_get_contents($_FILES["image"]["tmp_name"])); // 获取上传图片的二进制内容

// 插入图片名和内容到数据库

$query = "INSERT INTO images (name, content) VALUES ('$name', '$image')";

mysqli_query($conn, $query);

echo "图片上传成功!";

4.最后,在HTML页面中显示图片时,可以通过从数据库中读取的二进制内容来访问图片:

$query = "SELECT * FROM images WHERE id = $id";

$result = mysqli_query($conn, $query);

$row = mysqli_fetch_assoc($result);

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

以上就是两种将图片插入到PHP数据库中的方法。需要根据实际情况选择合适的方法进行操作。

在 PHP 中,可以通过以下步骤向数据库插入图片:

1. 将图片文件读入到一个变量中,可以使用 `file_get_contents()` 函数来实现:

$image = file_get_contents("path/to/image.jpg");

2. 将读入的图片数据转换成 BASE64 编码,可以使用 `base64_encode()` 函数来实现:

$image_base64 = base64_encode($image);

3. 将 BASE64 编码后的图片数据插入到数据库中,可以使用 INSERT 语句来实现:

```sql

INSERT INTO table_name (image_column) VALUES ('$image_base64');

其中 `table_name` 是要插入数据的表名,`image_column` 是保存图片数据的列名。

完整代码示例:

```php

$image = file_get_contents("path/to/image.jpg");

$image_base64 = base64_encode($image);

$sql = "INSERT INTO table_name (image_column) VALUES ('$image_base64')";

$result = mysqli_query($con, $sql);

其中 `$con` 是一个已经连接到数据库的 MySQLi 对象。