Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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 mySQL查询_Php_Mysql_Sql Update - Fatal编程技术网

使用变量更新表中行的PHP mySQL查询

使用变量更新表中行的PHP mySQL查询,php,mysql,sql-update,Php,Mysql,Sql Update,我的PHP文件包含以下函数。当我将review列设置为“$review”并且将IdUser设置为2时,它就会工作。但是我需要将IdUser设置为变量$user。将IdUser设置为变量而不是常量的正确语法是什么?(最好以避免SQL注入攻击的方式) 嗨,正确的语法是使用 {$var}无论您希望var的当前值出现在何处,因此在您的情况下它都会出现 $result = query("UPDATE ratings SET review ='{$review}' WHERE IdUser = {$user

我的PHP文件包含以下函数。当我将review列设置为
“$review”
并且将
IdUser
设置为2时,它就会工作。但是我需要将
IdUser
设置为变量
$user
。将
IdUser
设置为变量而不是常量的正确语法是什么?(最好以避免SQL注入攻击的方式)


嗨,正确的语法是使用

{$var}
无论您希望var的当前值出现在何处,因此在您的情况下它都会出现

$result = query("UPDATE ratings SET review ='{$review}' WHERE IdUser = {$user}
order by dateTime desc limit 1");

嗨,正确的语法是使用

{$var}
无论您希望var的当前值出现在何处,因此在您的情况下它都会出现

$result = query("UPDATE ratings SET review ='{$review}' WHERE IdUser = {$user}
order by dateTime desc limit 1");
//抗注射

$user=(int)$user

$review=mysql\u real\u escape\u字符串($result); //mysqli\u real\u escape\u字符串会更好

$result=query(“更新评级集审核=“$review”,其中IdUser=$user order by dateTime desc limit 1”)

//反注入

$user=(int)$user

$review=mysql\u real\u escape\u字符串($result); //mysqli\u real\u escape\u字符串会更好


$result=query(“更新评级集审核=“$review”,其中IdUser=$user order by dateTime desc limit 1”)

必须像前面一样对字符串使用单引号,但不需要对整数使用单引号

query("UPDATE ratings SET review ='$review' WHERE IdUser = $user order by dateTime desc limit 1");

必须像前面一样对字符串使用单引号,但不需要对整数使用单引号

query("UPDATE ratings SET review ='$review' WHERE IdUser = $user order by dateTime desc limit 1");
试试这个。

函数addRatings2($review,$user){

$review=mysql\u real\u escape\u字符串($review)

$user=(int)$user

}

试试这个。

函数addRatings2($review,$user){

$review=mysql\u real\u escape\u字符串($review)

$user=(int)$user

}

$user
字符串还是整数变量?字符串必须是单引号,就像您使用
'$review'
一样,并通过使用
query()
(例如
mysql\u real\u escape\u string()
)调用的任何数据库API的适当方法进行转义。$user是整数值是
$user
字符串还是整变量?字符串必须是单引号,就像您使用
'$review'
一样,并通过使用
query()
调用的任何数据库API的适当方法进行转义(例如
mysql\u real\u escape\u string()
).$user是一个整数值哦,为了避免SQL注入,必须使用stripslashes和mysql_real_escape_string函数,{$var}不起作用。但是,如果我使用单引号'$var',它适用于review变量,但不适用于用户变量(UserId='$user')oops nevermind,我在PHP中没有将UserId作为会话传递。你的语法完全正确!!!应该是这样的,但另一种方式是将var连接到字符串,如$result=query(“更新评级集review='$review',其中IdUser=“.$user.”order by dateTime desc limit 1”);点(.)字符是phpoh中的连接运算符,为了避免SQL注入,必须使用stripslashes和mysql_real_escape_字符串函数{$var}不起作用。但是,如果我使用单引号'$var',它适用于review变量,但不适用于用户变量(UserId='$user')oops nevermind,我在PHP中没有将UserId作为会话传递。你的语法完全正确!!!应该是这样的,但另一种方式是将var连接到字符串,如$result=query(“更新评级集review='$review',其中IdUser=“.$user.”order by dateTime desc limit 1”);点(.)字符是php中的连接运算符