Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将多个图像插入mysql数据库_Php_Mysql_Pdo - Fatal编程技术网

Php 将多个图像插入mysql数据库

Php 将多个图像插入mysql数据库,php,mysql,pdo,Php,Mysql,Pdo,我正在创建一个表单,将图像插入滑块,最多10张幻灯片。当插入图像时,我需要能够选择2张、3张或4张幻灯片的选项。但是当我尝试插入小于10的图像时,它不会插入到数据库中 这是我到目前为止所做的 try { //$max_size = 2097152; This is to do, not part of question $allowed = array('jpg', 'jpeg', 'png'); $img_1 = $_FILES['slider_1']['name

我正在创建一个表单,将图像插入滑块,最多10张幻灯片。当插入图像时,我需要能够选择2张、3张或4张幻灯片的选项。但是当我尝试插入小于10的图像时,它不会插入到数据库中

这是我到目前为止所做的

try {

    //$max_size = 2097152;  This is to do, not part of question
    $allowed = array('jpg', 'jpeg', 'png');

    $img_1 = $_FILES['slider_1']['name'];

    $extn   =   strtolower(end(explode('.', $img_1)));
    $temp   =   $_FILES['slider_1']['tmp_name'];

    if(in_array($extn, $allowed) === true) {
        $slider_1 = 'data/' . md5(time().uniqid()) . '.' . $extn;
        move_uploaded_file($temp, $slider_1);
    }

//This works upto this point

$insert = DB::getInstance()->insert('slider', array(
    'main'      =>  $main,
    'slider_1'  =>  $slider_1,
    'slider_2'  =>  $slider_2,
    'slider_3'  =>  $slider_3,
    'slider_4'  =>  $slider_4,
    'slider_5'  =>  $slider_5,
    'slider_6'  =>  $slider_6,
    'slider_7'  =>  $slider_7,
    'slider_8'  =>  $slider_8,
    'slider_9'  =>  $slider_9,
    'slider_10' =>  $slider_10
));

    Session::flash('success', '<p class="success">Inserted successfully</p>');
    Redirect::to('test.php');

} catch(Exception $e) {
    die($e->getMessage());
}
这是我的插入函数

public function insert($table, $fields = array()) {
    $keys   = array_keys($fields);
    $values = null;
    $x      = 1;

    foreach($fields as $value) {
        $values .= "?";
        if($x < count($fields)) {
            $values .= ', ';
        }
        $x++;
    }

    $sql = "INSERT INTO {$table} (`" . implode('`, `', $keys) . "`) VALUES ({$values})";

    if(!$this->query($sql, $fields)->error()) {
        return true;
    }

    return false;
}
这是我的表格

<form id="contact-form" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" enctype="multipart/form-data" autocomplete="off">

    <label for="main"><span class="required">*</span> Main Image:</label>
    <input type="file" name="main">
    <label for="img_set_1"><span class="required">*</span> Image Set 1:</label>
    <input type="file" name="slider_1">
    <label for="img_set_2"><span class="required">*</span> Image Set 2:</label>
    <input type="file" name="slider_2">
    <label for="img_set_3"><span class="required">*</span> Image Set 3:</label>
    <input type="file" name="slider_3">
    <label for="img_set_4"><span class="required">*</span> Image Set 4:</label>
    <input type="file" name="slider_4">
    <label for="img_set_5"><span class="required">*</span> Image Set 5:</label>
    <input type="file" name="slider_5">
    <label for="img_set_6"><span class="required">*</span> Image Set 6:</label>
    <input type="file" name="slider_6">
    <label for="img_set_7"><span class="required">*</span> Image Set 7:</label>
    <input type="file" name="slider_7">
    <label for="img_set_8"><span class="required">*</span> Image Set 8:</label>
    <input type="file" name="slider_8">
    <label for="img_set_9"><span class="required">*</span> Image Set 9:</label>
    <input type="file" name="slider_9">
    <label for="img_set_10"><span class="required">*</span> Image Set 10:</label>
    <input type="file" name="slider_10">
    <button type="submit">SUBMIT</button>
    <input type="hidden" name="token" value="<?php echo Token::generate(); ?>">

</form>

提前感谢

您遇到了什么错误?没有错误,只是没有插入数据库。如果我注释掉所有插入数组,除了'slider\u 1'=>$slider\u 1,以及除name=slider\u 1之外的所有表单输入,那么它工作得非常好。但是我需要能够选择我想要的数量,最多10个,而无需注释数组。当您回显$sqlIt时,您会得到什么?您似乎只处理“$”u文件['slider\u 1']”,其他“$”u文件['slider\u 2']”等等。?如果您使用var_dump$_FILES],您将看到其中包含哪些数据。在html表单“name=slider[]的“file”小部件中使用数组名可能会很有用。在您的代码中,“$slider_2”。。变量将未定义。这是来自$sql的echo的查询-插入到主滑块、滑块_1、滑块_2、滑块_3、滑块_4、滑块_5、滑块_6、滑块_7、滑块_8、滑块_9、滑块_10值?、?、?、?、?、?、?、?、?、?