如何将图像插入mysql

时间:2015-08-20 07:18:08

标签: php mysql forms

我正在尝试将4个图像上传到我的文件目录中,并且我想在数据库中保存对它们的引用。但是使用下面的当前代码,它的作用是,它在数据库中插入另一行而不是将图像1放入img1,依此类推。

我放弃了。我不知道我在这里做错了什么。

enter image description here

<?php
    if(isset($_POST['go'])) 
        {
        if(isset($_FILES['file_array']))
         {
            $name_array = $_FILES['file_array']['name'];
            $tmp_name_array = $_FILES['file_array']['tmp_name'];
            $type_array = $_FILES['file_array']['type'];
            $size_array = $_FILES['file_array']['size'];
            $error_array = $_FILES['file_array']['error'];
            $currently_item = "";
        for($i = 0; $i < count($tmp_name_array); $i++)
        {
            if(move_uploaded_file($tmp_name_array[$i],'users_posted_data/'.$name_array[$i]))
            {
                    $currently_item = current($_FILES['file_array']['name']);
                    $sql = $conn->query("INSERT INTO posts(img1, img2, img3) Values('{$currently_item}')");
                    echo $name_array[$i] . "uploaded successfully" . '<br>';
            } 
            else 
            {

            }
        }

    }
}
?>


                            <form action="" method="post" enctype="multipart/form-data">
                                <input type="file" name="file_array[]"><br><br>
                                <input type="file" name="file_array[]"><br><br>
                                <input type="file" name="file_array[]"><br><br>
                                <input type="file" name="file_array[]"><br><br> 
                                <input type="submit" name="go" value="Publish">
                        </form>

2 个答案:

答案 0 :(得分:1)

试试这个:

在循环中:

 $currently_item[] = current($_FILES['file_array']['name']);

走出循环

   $currently_item = current($_FILES['file_array']['name']);

    $sql = $conn[![enter image description here][1]][1]->query("INSERT INTO posts(img1, img2, img3) 
   Values('".$currently_item[0]."','".$currently_item[1]."','".$currently_item[2]."')");

执行验证检查,例如是否存在值。

答案 1 :(得分:1)

尝试使用LOAD_FILE函数传递文件。它将文件内容作为字符串返回,您可以在INSERT或UPDATE命令中使用它 -

INSERT INTO table(id, file_name, file_data) VALUES(1, 'img.png', LOAD_FILE('img.png'));

LOAD_FILE功能。