Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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 PDO多选问题_Php_Pdo - Fatal编程技术网

Php PDO多选问题

Php PDO多选问题,php,pdo,Php,Pdo,我正在数据库中插入表单多选值,但它只插入最后一个选定值。如何解决这个问题这是我的代码。有人能告诉我代码有什么问题吗?为什么只插入最后一个值。谢谢 PHP: HTML: 技能 Html5 Css3 插图画家 Photoshop 珊瑚画 滑动分页 Javascript Wordpress 马根托 安卓 吴哥商业 PHP 您不能直接将like$\u POST['skill']插入数据库字段,但您可以将数组中的值加入字符串,然后将字符串插入数据库字段 因此,您可以尝试以下方法: $skills = j

我正在数据库中插入表单多选值,但它只插入最后一个选定值。如何解决这个问题这是我的代码。有人能告诉我代码有什么问题吗?为什么只插入最后一个值。谢谢

PHP:

HTML:


技能
Html5
Css3
插图画家
Photoshop
珊瑚画
滑动分页
Javascript
Wordpress
马根托
安卓
吴哥商业
PHP

您不能直接将like
$\u POST['skill']
插入数据库字段,但您可以将数组中的值加入字符串,然后将字符串插入数据库字段

因此,您可以尝试以下方法:

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

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

我们可以查看您的表单吗?您还必须在选项标记中提供值,例如:Html5,因此提交时,值将保存在变量中。您使用
$stmt->bindParam进行绑定(“:skill',$value);
但是您如何以及在哪里初始化
$value
?我尝试了$skill=$_POST['skill'];foreach($skill as$value){echo$value;}当我回显$value时,它会显示所有的值。您知道在使用变量之前必须初始化它吗,例如
$value='test';$stmt->bindParam(':skill',$value);
而不是
$stmt->bindParam(':skill',$value);$value='test';
?谢谢为我工作
<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>  
$skills = join(',', $_POST['skill']);
$stmt->bindParam(':skill', $skills);