猿问

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

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

        )


)

如何修复我提到的它显示的错误(在顶部)?



森林海
浏览 100回答 1
1回答

繁花如伊

我首先将代码更改为 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>
随时随地看视频慕课网APP
我要回答