尝试上传多个图像到数据库无法正常工作

时间:2016-03-08 14:46:23

标签: php mysql

我正在尝试使用预准备语句将图像上传到数据库。每当我执行查询时,字段名称和id都按预期正确插入数据库,除了我在数据库中获得0字节的图像。我尝试使用move_uploaded_file()上传多个图片并且它有效,但它只是没有使用数据库我尝试上传只有10kb大小的图像并且无法正常工作。它一直在数据库中给我0字节。

这是我的代码

//uploading image to database
function upload_image($last_id, $conn)
{
    $extension = [
        "jpeg",
        "jpg",
        "png",
        "gif",
    ];
    if (isset($_POST["submit"])) {
        //in case of uploading multiple images
        foreach ($_FILES["input"]["tmp_name"] as $key => $tmp_name) {
            $name = basename($_FILES["input"]["name"][$key]);
            $imageFileType = pathinfo($name, PATHINFO_EXTENSION);

            if (in_array($imageFileType, $extension)) {
                $stmt3 = $conn->prepare("INSERT INTO image (id ,name, image) VALUES (?, ?, ?)");
                $image = addslashes(file_get_contents($_FILES["input"]["tmp_name"][$key]));
                $stmt3->bind_param("isb", $last_id, $name, $image);
                $stmt3->execute();
                $stmt3->close();
            }
        }//end loop
    }//end if
}//end function

没有必要放置表单的html代码,因为它已经与move_uploaded_file()

一起使用了

1 个答案:

答案 0 :(得分:0)

我只将bind_bram中的$ image中的$ image数据类型替换为字符串's',它可以正常工作。

$stmt3->bind_param("iss", $last_id, $name, $image);

不知道为什么它不起作用