phpmyadmin 如何在where语句中使用mysql保留关键字作为列?

s5a0g9ez  于 2022-11-09  发布在  PHP
关注(0)|答案(2)|浏览(155)

当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保留的关键字。

jbose2ul

jbose2ul1#

您可以在列名称周围加上反引号(′),表示保留的mysql字

SELECT `key` FROM `table`
hujrc8aj

hujrc8aj2#

回答有点晚,但仍然没有被接受的答案,我添加了这个答案。
我们可以给表给予别名,引用WHERE语句中保留关键字列,即

SELECT * FROM discordlink AS d WHERE d.key = '$key'

相关问题