当我尝试更新我的表格而不是通过url数组递增时,打印到表格的内容只是url数组中的最后一项。使用foreach更新MySQL表格()
当我回应$url
我可以告诉它通过适当的阵列循环。当我回应$currentId
是正确增量。为什么查询不会在我的表格的每一行中输入每个$url
。这里发生了什么,我不明白?
$currentId = 1;
foreach($pages as $url)
{
$query = "UPDATE pageurls SET url='$url' WHERE id='currentId'";
mysql_query($query);
echo($url.'<br/>');
$currentId++;
}
这是不是真的对用户的输入,它是关于如何确保MySQL的东西认为是一个特殊字符将被正确处理。这是一个很好的习惯。 – 2012-01-27 13:51:54
@Topener:由于系统需要由某人编程,所以仍然是“用户”输入(特别是如果你使用初级编码器)。尽管如此,a)使用正确的类型(例如'(int)$ currentId')或者b)参数化查询可能更好,而不是盲目地将所有东西都转换为字符串。 – Piskvor 2012-01-27 14:05:40