当where语句中的列名是mysql关键字时,MYSQL不会让查询选择行。
我正在创建一个php api,它在其中获取用户名,该用户名附加到用户提供的密钥,但当它获取用户名时,它无法使用key == '$key'
搜索它,因为“key”是前端生成的MySQL保留字(它不能被更改)。
我试过用“s、's、' s和[]s包围列名,但都不管用。如果有人能帮助我,那就太好了。
$key = $_GET['key'];
$sql = "SELECT * FROM discordlink WHERE key = '$key'";
$result = $conn->query($sql);
它应该能够使用提供的where子句找到附加到键的行,但它不能,因为它是mysql保留的关键字。
2条答案
按热度按时间jbose2ul1#
您可以在列名称周围加上反引号(′),表示保留的mysql字
hujrc8aj2#
回答有点晚,但仍然没有被接受的答案,我添加了这个答案。
我们可以给表给予别名,引用
WHERE
语句中保留关键字列,即