我正在try 从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行的‘’附近

推荐答案

首先,你应该判断一下你的image column is BLOB type

我对你的SQL表一无所知,但如果我能试着做一个我自己的例子.

我们有字段100(Int)、101(Blob)和102(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函数-它们已弃用!使用PDOMySQLi.您还应该考虑将文件存储在磁盘上的位置.使用mysql存储图像被认为是坏主意™.处理包含 Big Data (如图像)的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()对数据进行转义,否则将导致语法错误.

Database相关问答推荐

重新运行后未找到 Taipy 场景

在GridDB中使用存储过程失败

DBMS_RANDOM 是否默认安装?

聚合以过滤 MongoDB 中的引用

utf-8 与 latin1

将一个表中的多个列连接到另一个表中的单个列

操作错误:FATAL: database "django" does not exist

Laravel 5 从 URL 获取 ID

SQLite 中内存数据库的优势

SQL-Server:还原数据库时,SQL 命令行中的 NOUNLOAD 和 STATS 是什么意思?

如何关闭 Rails 中的updated_at列?

表别名如何影响性能?

Hibernate 的 MariaDB 方言类名称是什么?

在 iphone 上本地存储数据

执行语句还是运行脚本?

如何处理这个错误(1049,未知数据库'/users/ohyunjun/work/astral/mysql')

在 Firestore 中使用嵌套的单个查询

Rails 新手,设置 db 然后运行 ​​rake db:create/migrate

如何删除除了postgres中的少数数据库之外的所有数据库

由多个用户编辑数据库记录