如何为字段执行foreach插入查询?

时间:2012-05-07 19:38:54

标签: php validation foreach csv

我有一个领域,我确信这些条目会像输入字段中的Edward,John,Jacob。

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

$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()); 

} 

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

4 个答案:

答案 0 :(得分:3)

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

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

然后你可以运行你的foreach函数。

答案 1 :(得分:1)

您的输入应如下所示:<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());
}

答案 2 :(得分:1)

DampeS8N所述,mysql_real_escape_string返回一个字符串。您无法将其应用于Array

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

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

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

答案 3 :(得分:0)

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

此外:

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

应该是:

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