为了账号安全,请及时绑定邮箱和手机立即绑定

尝试将图像存储到数据库时出现 SQL 错误(已更新)

尝试将图像存储到数据库时出现 SQL 错误(已更新)

PHP
森林海 2023-08-11 17:43:41
UPDATED:正如评论部分所建议的,我已经更新了我的代码并现在使用 PDO。我仍然有同样的错误。我正在尝试将多个图像存储到数据库(phpmyadmin)。当我尝试上传时出现错误Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'file.png' in 'field list'我的数据库:我有一个名为 image_upload 的数据库,其中有一个名为 car_detailss 的表,其中包含 id (int11)、car_name(varchar 255) 和 imageOfcar(longblob)。这是我的图像详细信息:Array(    [0] => Array        (            [name] => file.png            [type] => image/png            [tmp_name] => /opt/lampp/temp/phpJYyrQn            [error] => 0            [size] => 77776        )    [1] => Array        (            [name] => files.png            [type] => image/png            [tmp_name] => /opt/lampp/temp/phpXOLvzL            [error] => 0            [size] => 84710        ))如何修复我提到的它显示的错误(在顶部)?
查看完整描述

1 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

我首先将代码更改为 PDO,并且没有在没有任何反引号或“”的情况下插入数据库,而是按照注释部分中的建议,在将图像插入数据库时添加了反引号和“”。


$conn->exec( "INSERT INTO car_detailss  (car_name , imageOfcar) VALUES ('$carname', '$imagename')");


现在我可以将图像插入到我的数据库中。我也在这里更新了我的代码。


我的代码:


<!doctype html>

<html>

    <head>

        <title>Test</title>

    </head>

    <body>

    <form   method="post" enctype="multipart/form-data">

           <input type="file" name="userfile[]" multiple="" /> 

           <input type="submit" name="submit" value="upload" />

    </form>


    <?php

      $servername="localhost";

      $username="root";

      $password = "";

      $dbname="image_upload";

      try {

      $conn = new PDO("mysql:host=$servername;dbname=$dbname",$username, $password);

      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


      // begin the transaction

      $conn->beginTransaction();



      

      


$phpFileUploadErrors = array(

    0 => "There is no error, the file uploaded with success",

    1 => "The uploaded file exceeds the upload_max_filesize directive in php.ini",


    2 => "The upload file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form",


    3 => "The upload file was only partially uploaded",



    4 => "No file was uploaded",


    6 => "Missing a temporary folder",

    7 => "Failed to write file to disk.",

    8 => "A php extension stopped the file upload"

);




    if(isset($_FILES['userfile'])) {

      

       $file_array = reArrayFiles($_FILES['userfile']);

       pre_r($file_array);

        for($i=0;$i<count($file_array);$i++) {


    $carname = $file_array[$i]["size"];

    $tablename = "car_detailss";


            $imagename = $file_array[$i]["name"];

           

            $conn->exec( "INSERT INTO `car_detailss` (`car_name`, `imageOfcar`) VALUES ('$carname', '$imagename')");


          

          

          

            }

           

         

         


        }

        $conn->commit();

        echo "new records created succesfully";

    } catch(PDOException $e) {

        // roll back the transaction if something failed

        $conn->rollback();

        echo "Error: " . $e->getMessage();

      }

      

      $conn = null;

       

    


      

 

    


 function reArrayFiles($file_post) {

     $file_ary = array();

     $file_count = count($file_post['name']);

     $file_keys = array_keys($file_post);


     for ($i = 0; $i < $file_count; $i++){

     foreach($file_keys as $key) {

         $file_ary[$i][$key] = $file_post[$key][$i];

     

     }

 }

 return $file_ary;

}


    function pre_r($array) {

        echo '<pre>';

        print_r($array);

        echo '</pre>';

    }


    

    ?>

    

    </body>

</html>



查看完整回答
反对 回复 2023-08-11
  • 1 回答
  • 0 关注
  • 72 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信