PHP怎么用PDO同时插入多条数据?

2024-11-30 04:34:59
推荐回答(2个)
回答1:

数组表单后面不需要加数字标签,会自动编码。

见以下代码:





Test



    
    
    

    
    
    

    
    
    

    
    
    

    
    
    

    提交

if(!empty($_POST)){
    $pdo   = new PDO("mysql:host=localhost;dbname=t1","root","");
    $stmt  = $pdo->prepare("insert into t2(age,name)values(:age,:name)");
    $ages  = $_POST['age'];
    $names = $_POST['name'];
    foreach($ages as $key => $age){
        if(trim($age) || trim($names[$key])){
            $stmt->execute(array(':age'=>$age,':name'=>$names[$key]));
        }
    }
}
?>

回答2:

你用for循环试试:

for($x=1;$x++;$x<=5) {
    $age = $_POST['age'][$x];
    $name = $_POST['name'][$x];
    
    //continue
}

或者利用insert特性,直接用一条SQL插入多行内容

INSERT INTO t2(age,name) values (?, ?), (?, ?), (?, ?);

PDO绑定参数:

$data = array($age1, $name1, $age2, $name2, $age3, $name3);
$stmt->execute($data);