如何使用PHP代码将图像上传到MySQL数据库

我正在尝试从HTML表单中将图像保存在数据库中。我已经编写了PHP代码来完成此任务。该程序不会生成任何错误消息,但不会在MySQL数据库中插入图像数据。请检查一下。在这里,我分享了我的代码摘录。

        /*-------------------

IMAGE QUERY

---------------*/

$file =$_FILES['image']['tmp_name'];

if(!isset($file))

{

echo 'Please select an Image';

}

else

{

$image_check = getimagesize($_FILES['image']['tmp_name']);

if($image_check==false)

{

echo 'Not a Valid Image';

}

else

{

$image = file_get_contents ($_FILES['image']['tmp_name']);

$image_name = $_FILES['image']['name'];

if ($image_query = mysql_query ("insert into product_images values (1,'$image_name',$image )"))

{

echo $current_id;

//echo 'Successfull';

}

else

{

echo mysql_error();

}

}

}

/*-----------------

IMAGE QUERY END

---------------------*/

<form action='insert_product.php' method='POST' enctype='multipart/form-data' ></br>

File : <input type='file' name= 'image' >

</form>

错误消息您的SQL语法有错误;请参阅。检查与您的MySQL服务器版本相对应的手册,以在第1行的’‘附近使用正确的语法

回答:

首先,您应该检查 !

我对您的SQL表一无所知,但是如果我尝试以自己的示例为例。

我们得到了 id (int), image (blob)和 image_name (varchar(64))字段。

因此,代码应如下所示(假设ID始终为“ 1”,让我们使用此mysql_query):

$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //SQL Injection defence!

$image_name = addslashes($_FILES['image']['name']);

$sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";

if (!mysql_query($sql)) { // Error handling

echo "Something went wrong! :(";

}

您在许多方面都做错了。不要使用mysql函数-

不推荐使用!使用PDO或MySQLi。您还应该考虑在磁盘上存储文件位置。使用MySQL存储图像被认为是Bad

Idea™。用大数据(例如图像)处理SQL表可能会出现问题。

此外,您的HTML表单也不符合标准。它看起来应该像这样:

<form action="insert_product.php" method="POST" enctype="multipart/form-data">

<label>File: </label><input type="file" name="image" />

<input type="submit" />

</form>


边注:

处理文件并将其存储为BLOB时,必须使用进行转义mysql_real_escape_string(),否则将导致语法错误。

以上是 如何使用PHP代码将图像上传到MySQL数据库 的全部内容, 来源链接: utcz.com/qa/398000.html

回到顶部