任何人都知道如何解决这个问题?我做错了什么我对英语不好抱歉 链接是看我的代码,希望它有帮助
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"];
答案 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)