如何对字段执行 foreach 插入查询


How to do a foreach insert query for a field?

我有一个字段,我确信输入字段中的条目会像爱德华、约翰、雅各布一样。

现在,我正在尝试为每个人插入一个新行。 我正在这样做:

$person = mysql_real_escape_string($_POST['person']);
foreach($person_array as $value) 
{ 
$insert = "INSERT INTO people (Person)
VALUES ('".$value."')";
$query = mysql_query($insert) or die ("Error: ".mysql_error()); 
} 

使用上面的查询,我无法插入到表中。 我做错了什么?

如果 $_POST['person'] 确实是一个这样的值:"John, Edward, Jacob",那么它只是一个字符串;你需要用 explode 将其转换为数组。此外,它应该是 _POST 美元而不是$POST。

$person = explode(',', $_POST['person']);

然后,您可以运行 foreach 函数。

正如 DampeS8N 所评论的那样,mysql_real_escape_string 返回一个字符串。您不能将其应用于Array

此外,anuragbh 在您的代码上发现了一个拼写错误,它是$_POST而不是$POST

最后,尝试转义循环中的特殊字符。

foreach($_POST['person'] as $value)
{
    $value = mysql_real_escape_string($value);
    //your query here
}

您的输入应如下所示:<input type="text" name="person[]">

假设是这种情况,则您正在数组上运行mysql_real_escape_string

试试这个:

$person = $POST['person'];
foreach($person as $value) {
    $value = mysql_real_escape_string($value);
    $insert = "INSERT INTO people (Person) VALUES ('$value')";
    $query = mysql_query($insert) or die("Error: ".mysql_error());
}

你得到的错误是什么?其主键是否自动递增?

也:

$person = mysql_real_escape_string($POST['person']);

应该是:

$person = mysql_real_escape_string($_POST['person']);