这是我使用for循环运行10次的代码:
$query = "UPDATE fblikes SET likes = '$var[$i]' WHERE link = '$web[$i]'";
if(mysql_query($query))
{
echo $query;
}
else
{
echo mysql_error();
}
代码运行,我确实打印了ok!
10次,但表中没有任何反应。我还检查了2个数组,即$var
和$web
,它们包含正确的值。
查询对我来说没问题。这是我得到的(10个输出中的一个):UPDATE fblikes SET likes = '5' WHERE link = 'xxxxxxx.com/xxxx/iet.php';
答案 0 :(得分:2)
我不知道究竟是什么问题,并且要弄清楚你应该打印$query
的值,并告诉我们你得到了什么。更多信息,请在致电mysql_affected_rows()
后告诉我们mysql_query()
的价值。
但是,您的代码实现了一些错误的模式。
首先,您没有逃避$var[$i]
和$web[$i]
两种潜在影响:
此外,您执行几个类似的查询,这些查询仅在提供的输入上有所不同。
对于这两个问题,解决方案是使用准备好的语句,它将为您提供更多控制,安全性和性能。考虑放弃mysql_*
功能并切换到mysqli_*
或PDO
,并阅读prepared statements。