Php 使用“插入”仅为每一行插入最后一行
大家好 我正在做一个小的php项目,在这个项目中,我向我的php脚本发送一个逗号删除字符串。 我遇到的问题是,我试图让脚本执行5次,并插入5个值,但到目前为止,我发现做了一些错误的事情,只插入了最终值 我已经更改了$variable的值,以查看问题是否与我使用的字符串有关,但仍然没有更改。感谢您的帮助,因为我已将代码放在下面Php 使用“插入”仅为每一行插入最后一行,php,Php,大家好 我正在做一个小的php项目,在这个项目中,我向我的php脚本发送一个逗号删除字符串。 我遇到的问题是,我试图让脚本执行5次,并插入5个值,但到目前为止,我发现做了一些错误的事情,只插入了最终值 我已经更改了$variable的值,以查看问题是否与我使用的字符串有关,但仍然没有更改。感谢您的帮助,因为我已将代码放在下面 $variable = 'value1, value2, value3, value4, value5'; $arrs = explode(',', $varia
$variable = 'value1, value2, value3, value4, value5';
$arrs = explode(',', $variable);
foreach($arrs as $arr){
$sql = "INSERT INTO diver(refno,f_name,l_name,sig) VALUES ('$refno','$f_name','$variable',',')";
}
if(mysqli_query($conn,$sql)){
echo "Works ";
}else{
echo("Error description: " . mysqli_error($conn));
}
}else{
echo("Error description: " . mysqli_error($conn));
}
您应该在foreach的每个迭代中执行mysqli_查询
foreach($arrs as $arr){
$sql = "INSERT INTO diver(refno,f_name,l_name,sig) VALUES ('$refno','$f_name','$variable',',')";
mysqli_query($conn,$sql)
}
否则,您只能在foreach结束后的最后一次执行insert您需要在foreach内部运行查询
foreach($arrs as $arr){
$sql = "INSERT INTO diver(refno,f_name,l_name,sig) VALUES ('$refno','$f_name','$variable',',')";
mysqli_query($conn,$sql)
}
虽然事实上什么都没有改变?我猜$variable应该是$arr?值“$refno”、“$f_name”、“$arr”、“,”试试这个
$conn = mysqli_connect('host','user','pw','db');
$variables = 'value1, value2, value3, value4, value5';
$variables = explode(',', $variables);
$sql = "INSERT INTO diver(refno,f_name,l_name,sig) VALUES ";
$rows = array();
foreach( $variables as $variable ){
$rows[] = "('$refno','$f_name','$variable','')";
}
$sql .= implode(",",$rows);
if(mysqli_query($conn,$sql)){
echo "Works ";
}
else{
echo("Error description: " . mysqli_error($conn));
}
每次迭代都会覆盖$sql,因此最后一次是唯一执行的,只需将查询执行移到循环中即可。。并删除第二个,否则,它可能已被复制两次。即使是这样也不安全。好主意-做或不做。没有尝试。一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的访客。表示了解的语句。即使是这样也不安全!是的,你是对的,我们可以做很多事情。。这只是关于插入问题。但是,如果您在没有准备语句的情况下发布答案,那么使用mysqli_escape_字符串来避免sql注入是一种很好的做法。表示了解的语句。即使是这样也不安全@杰布兰查德:正确。。你的评论告诉OP这个事实。如果你在没有准备好的声明的情况下发布一个答案。我会在未来的答案中考虑你的建议。JayBlanchard@SudhanshuJain ... 这个评论不是我的,而是杰布兰查德的。。。你应该把你的评论贴给他。。因此,注释只适用于一个目的地,即“了解”的语句。即使是这样也不安全!如果你在没有准备好陈述的情况下发布了答案。