我对这个SELECT感到很疯狂。 怎么了?
错误代码
无法运行查询:SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中出错;检查与MariaDB服务器版本对应的手册,以便在第2行的“in”附近使用正确的语法
PHP
$status = 'in';
//Prepare query
$query = "SELECT * FROM usr_time_reg
WHERE usr_stamp_status = $status";
答案 0 :(得分:3)
在字符串周围使用引号。
SELECT * FROM usr_time_reg
WHERE usr_stamp_status = '$status'
^-------^-------here
否则,DB认为您的意思是列名而不是值。
答案 1 :(得分:0)
$query = sprinf("SELECT * FROM usr_time_reg
WHERE usr_stamp_status = '%s'",$status);
答案 2 :(得分:0)
您的代码将生成查询
SELECT * FROM usr_time_reg
WHERE usr_stamp_status = in
因此,您的数据库很困惑,您正在比较没有引号的字符串值(您的情况只有在列类型为int时才有效),这对于字符串比较是必要的。
解决方案1
$query = "SELECT * FROM usr_time_reg
WHERE usr_stamp_status =".$status;
解决方案2
$query = "SELECT * FROM usr_time_reg
WHERE usr_stamp_status = '$status' ";