数据库布局:
rid (auto increment) (primary key) (255)
song (varchar) (120)
artist (varchar) (30)
by(varchar) (33)
key(varchar) (60)
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;
错误:
false:您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便在第1行使用“by,key”VALUES('testsong','testing','kyle','example')'附近的正确语法
帮助?我已经沉溺了好几年了,我看不出那个SQL有什么问题?提前谢谢!
答案 0 :(得分:6)
你需要对BY
和KEY
列使用反引号,两者都是mysql保留字
$sql = "INSERT INTO Requests (`song`,`artist`,`by`,`key`)
VALUES ('$song','$artist','$by','$key')";
旁注:
我建议你,请不要对表名或列名使用保留字和关键字。
答案 1 :(得分:3)
您需要返回与SQL相关的名称,同时by
和key
是MySQL reserved words:
INSERT INTO Requests (`song`,`artist`,`by`,`key`)
答案 2 :(得分:2)
尝试此查询以在“请求表”中插入数据
$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;
问题查询中的主要问题是列名称两侧的撇号错过了(歌曲,艺术家,按,键)应该是('歌曲','艺术家','通过',键')< / p>