使用变量更新表中行的PHP mySQL查询
我的PHP文件包含以下函数。当我将review列设置为使用变量更新表中行的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
“$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中的连接运算符