0

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

4

3 回答 3

0

你的问题是因为你有一个'在工作you're。所以你的字符串在你的句子中终止。改为you\'re转义字符'

$sql = "INSERT INTO data ('Artist', 'Name') VALUES ('TF2', 'you\'re right behind me')";
于 2013-07-23T02:49:10.160 回答
0

正如@Fred 和@JunM 已经评论的那样,您有两个问题。首先是 Name 是保留字。第二个是你的单引号字符串中有一个单引号。将您的 SQL 更改为:

$sql = "INSERT INTO data (`Artist`, `Name`) VALUES ('TF2', 'you\'re right behind me')";
于 2013-07-23T02:50:47.260 回答
0

我对 MySQL 的经验有限,但我广泛使用 SQL Server。对我来说,问题似乎在于“你就在我身后”中使用的撇号。在 SQL Server 中,我必须使用双撇号,所以 sql 指令会是这样的(注意你的双撇号):

$sql = "INSERT INTO data (Artist, Name) VALUES ('TF2', 'you''re right behind me')"; 

希望这可以帮助。问候

于 2013-07-23T02:51:02.360 回答