【发布时间】:2015-09-04 21:54:44
【问题描述】:
我试图弄清楚为什么 foreach 中的这个 MYSQL INSERT 没有向 mysql 数据库中插入任何东西!
// Parse the form data and add inventory item to the system
if (isset($_POST['g_name'])) {
$g_name =$_POST['g_name'];
$numbers = $_POST['numbers'];
$comma_separated = explode(", ", $numbers);
foreach($comma_separated as $seperate){
$sql .="INSERT INTO groups(`g_name`, `numbers`) VALUES ('$g_name','$seperate')";
}
$query = mysqli_query($db_conx, $sql);
header("location: groups.php");
exit();
}
如果我将$sql .= 更改为$sql =,它只会在MYSQL 数据库中插入一个值。
$numbers 的值是这样的:1, 2, 3, 4, 5
有人可以就这个问题提出建议吗?
任何帮助将不胜感激。
【问题讨论】:
-
你在哪里执行查询?从您显示的代码来看,它刚刚被构建。
-
同时显示查询代码。我怀疑您使用的扩展程序不允许多查询。
-
对不起,我编辑了我的问题!
-
如果你想一次做多个查询,你必须使用
mysqli_multi_query()。你必须在查询之间加上;。 -
首先,你应该逃避你的输入。由于有多个查询,PDO 将特别适合。您也可以执行
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);之类的操作,但准备好的语句会有点复杂。