简体   繁体   中英

Insert multiple rows with PDO

I have a multicheckbox in a <form> tag like this:

<input type="checkbox" name="del[]" value="<?php echo $menuItems['id']; ?>">

I ask this form with this code:

if (isset($_POST['subgruppe'])) {
        $ids = array();

    foreach ($_POST['del'] as $pval) {
        $ids[] = (int) $pval;
    }

    $ids = implode(',', $ids);
    echo "groupids";
    echo $ids;
    echo "userid:";
    echo $_POST['userid'];

This shows me a result like this:

groupids13,9...userid:5 

I need a statment that give me a result like this:

INSERT INTO user_groups (usergroup, userid) VALUE (13,5),(9,5)

... Can you give me a hint how i can check this? I think I can handel a solution that give me: (13,5),(9,5)... into a variable.

THanks a lot:)

You don't have to build a single string for all of your INSERTS simply insert while you are looping.

For example:

$sql = "INSERT INTO user_groups (usergroup, userid) VALUE (:usergroup, :userid)";
$stmt = $pdo->prepare($sql);
foreach ($_POST['del'] as $pval) {
    $stmt->execute(array(':usergroup'=>(int) $pval, 
                         ':userid'=>$_POST['userid']
    ));
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM