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

我想要的是填几条数据就能插入几条数据而且age和name要一一对应我写成这样了我试了一下如果只有一个字段可以这么写但是现在要同时插入到两个字段中所以不能分开两次插入数据这... 我想要的是填几条数据 就能插入几条数据 而且age和name要一一对应 我写成这样了 我试了一下 如果只有一个字段可以这么写 但是现在要同时插入到两个字段中 所以不能分开两次插入数据 这种方法肯定就不对了 不知道应该改
<form method="post">
<input type="text" name="age[1]">
<textarea name="name[1]"></textarea>
<hr>
<input type="text" name="age[2]">
<textarea name="name[2]"></textarea>
<hr>
<input type="text" name="age[3]">
<textarea name="name[3]"></textarea>
<hr>
<input type="text" name="age[4]">
<textarea name="name[4]"></textarea>
<hr>
<input type="text" name="age[5]">
<textarea name="name[5]"></textarea>
<hr>
<button type="submit">提交</button>
</form>
<?php
$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
$stmt=$pdo->prepare("insert into t2(age,name)values(:age,:name)");
$age1=$_POST['age'];
$name1=$_POST['name'];
foreach($age1 as $age){
if(trim($age){
$stmt->execute(array(':age'=>$age));
}
}
foreach($name1 as $name){
if(trim($name){
$stmt->execute(array(':name'=>$name));
}
}
展开
 我来答
dispose
2016-07-26 · TA获得超过642个赞
知道小有建树答主
回答量:458
采纳率:0%
帮助的人:494万
展开全部

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

见以下代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>Test</title>
</head>
<body>
<form method="post">
    <input type="text" name="age[]">
    <textarea name="name[]"></textarea>
    <hr>
    <input type="text" name="age[]">
    <textarea name="name[]"></textarea>
    <hr>
    <input type="text" name="age[]">
    <textarea name="name[]"></textarea>
    <hr>
    <input type="text" name="age[]">
    <textarea name="name[]"></textarea>
    <hr>
    <input type="text" name="age[]">
    <textarea name="name[]"></textarea>
    <hr>
    <button type="submit">提交</button>
</form>
<?php
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]));
        }
    }
}
?>
</body>
</html>
追问
这种方法很好 谢谢
来自:求助得到的回答
野人拆
2016-07-26 · TA获得超过1069个赞
知道小有建树答主
回答量:815
采纳率:57%
帮助的人:563万
展开全部

你用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);
追问
谢谢了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式