mysql insert inside foreach 不起作用?
mysql insert inside foreach is not working?
我想弄清楚为什么 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
有人可以就此问题提出建议吗?
如有任何帮助,我们将不胜感激。
更改循环以便每次都执行查询:
foreach($comma_separated as $seperate){
$sql ="INSERT INTO groups(`g_name`, `numbers`) VALUES ('$g_name','$seperate')";
$query = mysqli_query($db_conx, $sql);
}
你应该记住your script is at risk for SQL Injection Attacks. Learn about prepared statements。
您需要在循环内执行查询才能多次插入。
<?php
foreach($comma_separated as $seperate) {
$sql = "INSERT INTO groups(`g_name`, `numbers`) VALUES ('$g_name','$seperate')";
$query = mysqli_query($db_conx, $sql);
}
?>
您还应该考虑使用准备好的语句。
您可以使用此语法通过一次查询插入多条记录,而不是尝试执行多个查询。
$sql = "INSERT INTO groups(`g_name`, `numbers`) VALUES";
$comma = '';
foreach($comma_separated as $seperate){
$sql .="$comma ('$g_name','$seperate')";
$comma = ',';
}
$query = mysqli_query($db_conx, $sql);
INSERT statements that use VALUES syntax can insert multiple rows. To do this, include multiple lists of column values, each enclosed within parentheses and separated by commas.
Example: INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
我想弄清楚为什么 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
有人可以就此问题提出建议吗?
如有任何帮助,我们将不胜感激。
更改循环以便每次都执行查询:
foreach($comma_separated as $seperate){
$sql ="INSERT INTO groups(`g_name`, `numbers`) VALUES ('$g_name','$seperate')";
$query = mysqli_query($db_conx, $sql);
}
你应该记住your script is at risk for SQL Injection Attacks. Learn about prepared statements。
您需要在循环内执行查询才能多次插入。
<?php
foreach($comma_separated as $seperate) {
$sql = "INSERT INTO groups(`g_name`, `numbers`) VALUES ('$g_name','$seperate')";
$query = mysqli_query($db_conx, $sql);
}
?>
您还应该考虑使用准备好的语句。
您可以使用此语法通过一次查询插入多条记录,而不是尝试执行多个查询。
$sql = "INSERT INTO groups(`g_name`, `numbers`) VALUES";
$comma = '';
foreach($comma_separated as $seperate){
$sql .="$comma ('$g_name','$seperate')";
$comma = ',';
}
$query = mysqli_query($db_conx, $sql);
INSERT statements that use VALUES syntax can insert multiple rows. To do this, include multiple lists of column values, each enclosed within parentheses and separated by commas.
Example:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);