我有一个领域,我确信这些条目会像输入字段中的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());
}
使用上面的查询我无法插入表中。我做错了什么?
答案 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']);