将PHP变量添加到SQL语句中。不工作

时间:2012-03-14 23:25:27

标签: php sql

我无法在SQL语句中使用变量。当我用(ID = 11)替换(username = $ user)时,我可以让它工作,这是数据库和特定行(11)中的另一列,但我想在列'用户名'中包含一个与$ user匹配的特定行',以及其他随机结果,限制为$ sn。

使用var_dump($ user)时我知道变量有一个值,但是无法理解为什么它在SQL语句中不起作用。

$photo=mysql_query("SELECT A. * FROM (
SELECT DISTINCT * FROM profile_images
WHERE approved='N'  
ORDER BY (username = $user) DESC, RAND()      
LIMIT $sn) 
as A ORDER BY RAND()");

获取错误消息:SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在'@ googlemail.com附近使用正确的语法)DESC,RAND()LIMIT 9)作为第4行的ORDER BY RAND()'

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:4)

假设$sn保存整数值且不需要转义,

$photo=mysql_query("SELECT A. * FROM ( 
SELECT DISTINCT * FROM profile_images 
WHERE approved='N'   
ORDER BY (username = '".mysql_real_escape_string($user)."') DESC, RAND()       
LIMIT $sn)  
as A ORDER BY RAND()"); 

通常,请考虑使用PDO和绑定参数。