未知栏' $ userId' in' where子句

时间:2017-06-11 17:32:01

标签: mysql

任何人都知道如何解决这个问题?我做错了什么我对英语不好抱歉 链接是看我的代码,希望它有帮助

SELECT Beskeder.Id, Beskeder.Overskrift, Beskeder.Besked, Kategorier.Kategorinavn 
FROM Beskeder 
INNER JOIN Kategorier
    ON Beskeder.FK_KategoriId = Kategorier.Id
WHERE Beskeder.FK_brugerId = $userId 
ORDER BY Beskeder.Id DESC
LIMIT 0, 25 

MySQL返回:文档

#1054 - Unknown column '$userId' in 'where clause'** 

http://tinypic.com/view.php?pic=2vngfwy&s=9#.WT2RDpDyhPY

如果我在网站上尝试,我会得到这个错误 注意:未定义的索引:第222行的C:\ Xampp \ htdocs \ initializr_soren \ admin \ index.php中的userId 您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在附近使用ORDER BY Beskeder.Id DESC'在第5行

第222行是:$ userId = $ _SESSION [" userId"];

5 个答案:

答案 0 :(得分:0)

如果用"

括起来,你只能在QUERY中使用PHP变量

示例

"SELECT * FROM [table] WHERE `id` = $userId";

顺便说一句,这是sql-injection的冒险。

答案 1 :(得分:0)

当您使用包含来自用户的输入的SQL查询时,请使用预准备语句来构建此类查询并使用用户数据填充它。根据您使用的编程语言和库,您可能希望使用PDO::prepare()

答案 2 :(得分:0)

如果您在phpmyadmin或mysql工作台上运行,那么将$ userid替换为value..if然后将它视为字符串或者应该是双引号。

答案 3 :(得分:0)

#1054 - Unknown column '$userId' in 'where clause'** 

此错误显示您,因为您的表不包含使用此名称的列。

$userId是您的变量,您无法将变量添加到此类查询中。您可以使用双引号("")来包装整个查询,也可以将它们组合在一起,如下所示,

$query = "SELECT Beskeder.Id, Beskeder.Overskrift, Beskeder.Besked, Kategorier.Kategorinavn 
          FROM Beskeder INNER JOIN Kategorier ON Beskeder.FK_KategoriId = Kategorier.Id WHERE Beskeder.FK_brugerId = " .$userId ." 
          ORDER BY Beskeder.Id DESC
          LIMIT 0, 25";

而不是像Beskeder.Id这样访问表格列,您可以执行以下操作:

$query = "SELECT b.Id, b.Overskrift, b.Besked, k.Kategorinavn 
          FROM Beskeder AS b INNER JOIN Kategorier AS k ON b.FK_KategoriId = k.Id WHERE b.FK_brugerId = " .$userId ." 
          ORDER BY b.Id DESC
          LIMIT 0, 25";

这称为alias - Kategorier k:只需使用k

引用表格名称

答案 4 :(得分:0)

似乎没有任何错误,只是忘了我没有登录。 所以我的代码没问题:/