Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在运行更新查询,但不更新表php_Php_Mysql_Sql Update - Fatal编程技术网

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

正在运行更新查询,但不更新表php,php,mysql,sql-update,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次,但表中没有任何变化。我还检查了两个数组,即$va

下面是我在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次,但表中没有任何变化。我还检查了两个数组,即
$var
$web
,它们包含正确的值


我觉得这个问题没问题。以下是我得到的(10个输出之一):
UPDATE fblikes SET likes='5',其中link='xxxxxxx.com/xxxx/iet.php'

我不知道问题到底出在哪里,要想弄清楚,你应该打印
$query
的值,然后告诉我们你得到了什么。更多信息,请告诉我们调用
mysql\u query()
后受影响的行的值

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

首先,您没有逃逸
$var[$i]
$web[$i]
,这可能会产生两种影响:

  • 您可能会产生错误的查询
  • 您没有对数据库的输入进行清理,从而使您的应用程序面临安全问题
此外,您还可以执行几个类似的查询,这些查询只在提供的输入上有所不同


对于这两个问题,解决方案都是使用预先准备好的语句,这将为您提供更多的控制、安全性和性能。考虑放弃<代码> MySqL**<代码>函数,切换到<代码> MySqLI**<代码>或<代码> PDO/COD>,并阅读有关./P>问题:代码>链接= '$Web[$i] ] ,你应该正确地避开那个变量。为什么不打印查询本身,而不是毫无意义的“OK”“?@MahmoudGamal你说的逃逸这个变量是什么意思?我不明白mysql\u real\u escape\u string()
@YourCommonSense我觉得这个查询很好。以下是我得到的(10个输出之一):更新fblikes集likes='5',其中link='