0

我有一个字段,我确定输入字段中的条目将类似于 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

4 回答 4

3

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

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

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

于 2012-05-07T19:45:31.840 回答
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());
}
于 2012-05-07T19:46:30.697 回答
1

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

此外,anuragbh在您的代码中发现了一个错字,它$_POST不是$POST.

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

foreach($_POST['person'] as $value)
{
    $value = mysql_real_escape_string($value);
    //your query here
}
于 2012-05-07T19:48:40.790 回答
0

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

还:

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

应该:

$person = mysql_real_escape_string($_POST['person']);
于 2012-05-07T19:42:33.770 回答