PDO多选问题

时间:2017-03-16 12:33:48

标签: php pdo

我在数据库中插入一个表单多个选择值,但它只插入最后选择的值。我怎么能在这里解决这个问题。有人可以告诉我代码有什么问题以及为什么它只插入最后一个值。感谢

PHP:

        $stmt = $conn->prepare("INSERT INTO portfolio (title, descrption,categories,skill, images) VALUES (:title, :editor1,:Category,:skill,:fileToUpload)");    
        $stmt->bindParam(':title', $title);
        $stmt->bindParam(':editor1', $dec);        
        $stmt->bindParam(':skill',$value);
        $stmt->bindParam(':Category',$cat);
        $stmt->bindParam(':fileToUpload',$pic);    
        $title = $_POST['title'];
        $dec = $_POST['editor1'];
        $skill=$_POST['skill'];       
        foreach ($skill as $value)
        {
            echo $value;
        }
        $cat= $_POST['Category'];
        $pic=($_FILES['fileToUpload']['name']);

        $stmt->execute();
        echo "Portfolio records created successfully";
    }
}

HTML:

<div class="form-group">
    <label>Skills</label>
    <select id="ms" name="skill[]" multiple="multiple">
        <option>Html5</option>
        <option>Css3</option>
        <option>Illustrator</option>
        <option>Photoshop</option>
        <option>Coral Draw</option>
        <option>Jquery</option>
        <option>Javascript</option>
        <option>Wordpress</option>
        <option>Magento</option>
        <option>Android</option>
        <option>Woocommerce</option>
        <option>PHP</option>
    </select>
</div>  

1 个答案:

答案 0 :(得分:0)

您无法直接将array $_POST['skill']插入数据库字段,但您可以将数组内的值连接成字符串并将字符串插入数据库字段。

所以你可以尝试这样的事情:

$skills = join(',', $_POST['skill']);
$stmt->bindParam(':skill', $skills);

当然可以采用其他一些方法(比如将不同的值插入数据库表的不同行/数据集中)。