正在运行更新查询,但不更新表php


Update query running but not updating table php

以下是我在运行10次的for循环中使用的代码:

$query = "UPDATE fblikes SET likes = '$var[$i]' WHERE link = '$web[$i]'";
if(mysql_query($query))
{
    echo $query;
}                         
else
{
    echo mysql_error();
}

代码运行时,我确实打印了10次ok!,但表中什么也没发生。我还检查了两个数组,即$var$web,它们包含正确的值。

这个查询对我来说还可以。以下是我得到的(10个输出之一):UPDATE fblikes SET likes = '5' WHERE link = 'xxxxxxx.com/xxxx/iet.php';

我不知道问题到底是什么,为了弄清楚,你应该打印$query的值,并向我们展示你得到了什么。此外,请在调用mysql_query()之后告诉我们mysql_affected_rows()的值。

然而,您的代码实现了一些错误的模式。

首先,你没有逃脱$var[$i]$web[$i]的两个潜在影响:

  • 您可能会产生错误的查询
  • 您没有净化数据库的输入,从而使您的应用程序暴露在安全问题中

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

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