在mysql表中添加一个图像


Add an Image in a table mysql

其主要思想是能够从数据库中控制、上传和删除幻灯片的图像。

因此,首先我像这样连接到数据库,并使用while函数来回显我存储在数据库中的所有图像。

这是这样做的代码:

<?php
$servername = "myservername";
$username = "myusername";
$password = "mypassword";
$dbname = "mydbname";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";
$sql = "SELECT id, img FROM mytable";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
    echo "<img src=".$row['img'].">";
}
} else {
echo "0 results";
}
?>

在表"mytable"中,我有2列:一个ID auto-inc和一个名为img的列。如何将图像存储在img列中,以便我的函数将回显表中的所有图像?到目前为止,我在搜索中只找到了很多用html表单上传图像的方法,但我更喜欢直接在数据库上上传我的img,而不需要构建一个html+php表单来将我的所有图像上传到我的表中。

这可能吗?

将整个图像存储在数据库中通常是个坏主意。正如前面提到的,简单地将图像的路径存储在数据库中要简单得多。删除图像可能需要一些额外的工作,因为您需要一个php系统调用来删除图像文件

如果您真的必须将图像存储在数据库中,您可以将它们保存为base64编码的文本。我在一家相当成功的公司看到过这样做,但没有给出特别好的理由。您的sql执行时间将大大增加,因为图像是大文件,并且您的表大小将膨胀。