PHP - 插入SQL错误

Jaq*_*arh -1 php mysql

数据库布局:

rid (auto increment) (primary key) (255)
song (varchar) (120)
artist (varchar) (30)
by(varchar) (33)
key(varchar) (60)
Run Code Online (Sandbox Code Playgroud)

PHP代码:

$sql = "INSERT INTO Requests (song,artist,by,key) 
        VALUES ('$song','$artist','$by','$key')";
        if($this->db->query($sql))
        {
            die("true");
        }
        echo 'false: ' . $this->db->error;
Run Code Online (Sandbox Code Playgroud)

错误:

false:您的SQL语法有错误; 检查与您的MariaDB服务器版本对应的手册,以便在第1行使用"by,key"VALUES('testsong','testing','kyle','example')'附近使用正确的语法

救命?我已经沉溺了好几年了,我看不出那个SQL有什么问题?提前致谢!

dev*_*pro 6

你需要使用反引号BYKEY列,两者都是mysql保留字

$sql = "INSERT INTO Requests (`song`,`artist`,`by`,`key`) 
        VALUES ('$song','$artist','$by','$key')";
Run Code Online (Sandbox Code Playgroud)

MYSQL保留字列表

边注:

我建议你,请不要对表名或列名使用保留字和关键字.