用mysql保留字的SQL

时间:2013-07-23 02:43:51

标签: php mysql reserved-words reserved

我有以下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”这个词,但是我需要保存它,所以我的代码应该如何。感谢所有帮助

3 个答案:

答案 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')"; 

希望这会有所帮助。 此致