Blob数据类型图像未存储在数据库中

时间:2014-04-17 12:17:45

标签: php mysql

我正在尝试使用blob数据类型将图像存储在数据库中。

但我的程序没有将图像存储在数据库中。

form.php的:

<form action="upload.php" method="post" enctype="multipart/form-data">
 File Name<input type="file" name="image" /><br />
 <input type="submit"  value="Upload" />
</form>

upload.php的:

<?php
require_once('connection.php');

if(isset($_POST['submit'])){
    $image  =   addslashes(file_get_contents($_FILES[image]['tmp_name']));
    $query  =   "INSERT INTO images ('image') VALUES('".$image."')";
    mysql_query($query) or die(mysql_error());
    echo "Image id is ".mysql_insert_id();
    echo "Image id is ".mysql_insert_id();
}
?>

请解决我的问题..

4 个答案:

答案 0 :(得分:3)

BLOB最多可以存储65535 bytes。如果您还需要更多考虑使用MEDIUMBLOB 16777215 bytesLONGBLOB 4294967295 bytes

看看Storage Requirements for String Types

我的建议是使用LONGBLOB而不是BLOB。 希望它能起作用。

答案 1 :(得分:1)

尝试使用以下代码。

    $image  =   addslashes(file_get_contents($_FILES['image']['tmp_name']));
    $query  =   "INSERT INTO images (image) VALUES('".$image."')";

我认为这次工作很好......

答案 2 :(得分:0)

尝试在fieldName上使用反引号

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

答案 3 :(得分:0)

试试这个。这也是存储blob图像的另一种方法。

<强>码

    $image= $_FILES["image"];
    $image= mysql_real_escape_string("$image");
    $query = "INSERT INTO images (image) VALUES('".$image."')";
    mysql_query($query) or die(mysql_error());
    echo "Image id is ".mysql_insert_id();