解决引号使用错误 1064 (42000):您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,了解要使用的正确语法?

mysqlmysqli database

在 MySQL 中,您可以使用两种不同类型的引号,即反引号和单引号或双引号。在这种情况下,也许您在列名中使用了单引号,这就是您收到错误的原因。您需要使用反引号符号 (` `) 代替单引号。反引号可用于列名,而单引号可用于字符串。

为了理解上述错误,让我们创建一个表。创建表的查询如下 −

mysql> create table Backtick_SymbolDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(20),  
   -> FileName varchar(30),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.81 sec)

如果我们在列中使用单引号而不是反引号,则会出现错误,如下所示。在这里,我们插入了一个带有单引号的值,错误可见 −

mysql> insert into Backtick_SymbolDemo(`Name`,'FileName') values('John','Sum.cpp');
ERROR 1064 (42000): 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 ''FileName') values('John','Sum.cpp')' at line 1

要避免此错误,请在所有列名周围使用反引号,或者不要同时使用反引号或单引号。

插入记录的查询如下。以下是在两个列名周围使用反引号。

mysql> insert into Backtick_SymbolDemo(`Name`,`FileName`) values('John','Sum.cpp');
Query OK, 1 row affected (0.12 sec)

以下是不使用反引号的插入记录。查询如下 −

mysql> insert into Backtick_SymbolDemo(Name,FileName) values('Larry','SocketProgram.java');
Query OK, 1 row affected (0.23 sec)
mysql> insert into Backtick_SymbolDemo(Name,FileName) values('Mike','UserCreationScript.sql');
Query OK, 1 row affected (0.10 sec)

使用 select 语句显示表中的所有记录。查询如下 −

mysql> select *from Backtick_SymbolDemo;

以下是输出 −

+----+-------+------------------------+
| Id | Name  | FileName               |
+----+-------+------------------------+
|  1 | John  | Sum.cpp                |
|  2 | Larry | SocketProgram.java     |
|  3 | Mike  | UserCreationScript.sql |
+----+-------+------------------------+
3 rows in set (0.00 sec)

相关文章