Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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 如何从html中插入mysql选择多个_Php_Mysql - Fatal编程技术网

Php 如何从html中插入mysql选择多个

Php 如何从html中插入mysql选择多个,php,mysql,Php,Mysql,如何从HTML中插入MySQL选择多个 这是我的HTML代码: <select name="domaine[]" id="domaine" class="validate[required]" multiple> <option></option> <option value="WEB">WEB</option> <option value="Java2EE"

如何从HTML中插入MySQL选择多个

这是我的HTML代码:

<select name="domaine[]" id="domaine" class="validate[required]" multiple>
            <option></option>
            <option value="WEB">WEB</option>
            <option value="Java2EE">Java2EE</option>
            <option value="android">android</option>
            <option value="VB.Net">VB.Net</option>
            <option value="iOS">iOS</option>
            <option value="C++">C++</option>
</select>
这将为每个选中的选项插入一个条目


您也可以使用json_编码和json_解码,尽管我不建议这样做。

使用PDO非常好,但您的代码仍然容易受到攻击<代码>值接受多个参数

if (isset($_POST['domaine']) && is_array($_POST['domaine'])) {
    //(?,?),(?,?),(?,?) for 3 domaine
    $values = implode(',', array_fill(0, count($_POST['domaine']), '(?,?)'));
    $query = "INSERT INTO dev (cin, comp) VALUES $values";
    $params = array();
    foreach ($_POST['domaine'] as $d) {
        array_push($params, $cin, $d);
    }
    $rep = $cdb->prepare($query);
    $rep->execute($params);
}
您也可以
准备
一个
插入
语句并循环
执行
,但我认为这更有效。

$\u POST[“域”]
是一个数组,因此将其“按原样”放在数据库记录中将导致“数组”。 您需要决定哪种类型的“数组->字符串”方法最适合您的应用程序,并在插入数据库之前使用它


最简单的方法是使用
join($sep,$\u POST['domaine'])
serialize($\u POST['domaine'])

你刚才确实建议过。这不管用,因为它不会为每个项目创建任何记录。啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊。请,省得我在回答时把准备好的陈述页扔到OP上。这是工作,谢谢…..当我想对每个CIN进行更新时,我想把它保存在这样一个案例中:web、java2EE、android。。。怎样??及thanks@mamoud哦,我希望你早点告诉我。只需使用
插入dev(cin,comp)值(?,)
$params=array\u merge($cin,introde(',',$POST['domaine'])
foreach ( $_POST["domaine"] as $aSelectedOption){
$rep=$cdb->prepare("insert into dev (cin,comp)values('$cin','".$aSelectedOption."') ");
$rep->execute();
}
if (isset($_POST['domaine']) && is_array($_POST['domaine'])) {
    //(?,?),(?,?),(?,?) for 3 domaine
    $values = implode(',', array_fill(0, count($_POST['domaine']), '(?,?)'));
    $query = "INSERT INTO dev (cin, comp) VALUES $values";
    $params = array();
    foreach ($_POST['domaine'] as $d) {
        array_push($params, $cin, $d);
    }
    $rep = $cdb->prepare($query);
    $rep->execute($params);
}