我有以下sql代码:
$sql = "INSERT INTO data (Artist, Name) VALUES ('TF2', 'you're right behind me')";
代码本身看起来很正常但由于某种原因,mysql不希望允许我保存它。我收到以下错误:
"#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 're right behind me')' at line 1"
我所知道的问题是因为在mysql中保留了“right”这个词,但是我需要保存它,所以我的代码应该如何。感谢所有帮助
答案 0 :(得分:0)
您的问题是因为您的工作'
中有you're
。所以你的字符串会在你的句子中提前结束。请改用you\'re
来转义字符'
$sql = "INSERT INTO data ('Artist', 'Name') VALUES ('TF2', 'you\'re right behind me')";
答案 1 :(得分:0)
正如@Fred和@JunM已经评论过,你有两个问题。第一个是Name是保留字。第二个是你在单引号字符串中有一个引号。将SQL更改为:
$sql = "INSERT INTO data (`Artist`, `Name`) VALUES ('TF2', 'you\'re right behind me')";
答案 2 :(得分:0)
我对MySQL的经验有限,但我广泛使用SQL Server。对我而言,似乎问题出现在"你正在我身后的叛逆中。"。在SQL服务器中,我必须使用双重萎缩,所以sql指令就是这样的(注意你的双重叛逆''重新开始):
$sql = "INSERT INTO data (Artist, Name) VALUES ('TF2', 'you''re right behind me')";
希望这会有所帮助。 此致