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));
}
} 展开
<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));
}
} 展开
展开全部
数组表单后面不需要加数字标签,会自动编码。
见以下代码:
<!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>
追问
这种方法很好 谢谢
来自:求助得到的回答
展开全部
你用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);
追问
谢谢了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询