如何使用变量

时间:2016-06-12 17:06:28

标签: php mysql database variables pdo

有人可以登录。如果他登录,输入的密码(已解码)将与右侧密码进行比较(也已解码) 但是如果我做了

$sql = "SELECT PasswordDecode FROM Userinformations WHERE Username = ".$Username;
    foreach ($pdo->query($sql) as $row) {
        $PasswordDecode = $row["Password decode"];
    }

这个错误来了:

  

警告:在......

中为foreach()提供的参数无效

我不明白。如果用户名是DumbUsername,我就会

$sql = "SELECT PasswordDecode FROM Userinformations WHERE Username = DumbUsername";

没有错误发生且有效。但是,如果我在变量中写入用户名,它就无法正常工作。为什么呢?
请回答。

1 个答案:

答案 0 :(得分:0)

更改您的查询,使用引号arround变量

select val
from t
order by 
 case when val like '%-%' then 1 else 2 end
,case when substr(val,1,instr(val,'-')-1) glob '*[0-9]*' 
      then cast(substr(val,1,instr(val,'-')-1) as integer) 
      when substr(val,1,instr(val,'-')-1) glob '*[a-zA-Z]*' 
      then substr(val,1,instr(val,'-')-1)
 else val end
,case when val like '%-%' then cast(substr(val,instr(val,'-')+1) as integer)
 else val end