更新查询运行但不更新表php

时间:2013-02-17 09:57:49

标签: php mysql sql-update

这是我使用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';

1 个答案:

答案 0 :(得分:2)

我不知道究竟是什么问题,并且要弄清楚你应该打印$query的值,并告诉我们你得到了什么。更多信息,请在致电mysql_affected_rows()后告诉我们mysql_query()的价值。

但是,您的代码实现了一些错误的模式。

首先,您没有逃避$var[$i]$web[$i]两种潜在影响:

  • 您可以提出错误的查询
  • 您不会清理数据库的输入,从而使您的应用程序面临安全问题

此外,您执行几个类似的查询,这些查询仅在提供的输入上有所不同。

对于这两个问题,解决方案是使用准备好的语句,它将为您提供更多控制,安全性和性能。考虑放弃mysql_*功能并切换到mysqli_*PDO,并阅读prepared statements