0

我有一个 temp_inventory_cust 表,其中包含字段customer_id[int(11)] 和first_name[varchar(50)] 以及其他字段。我试图通过在 phyMyAdmin 中输入来运行这个查询,只是为了确保它在用 php 编码之前可以正常工作:

insert into temp_inventory_cust (`customer_id`,`first_name`) values (34,'fred');

它给了我:#1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '\'fred\')' 附近使用正确的语法。

我没有看到问题,我快疯了。

这个查询运行得很好:

insert into temp_inventory_cust (`customer_id`,`department_id`) values (34,2); 

(在这种情况下,两个字段都是 int 字段。

表结构

cust_id              int(11)     No 
first_name           varchar(50) No
last_name            varchar(50) No 
email_address        varchar(100)No 
phone_number         varchar(25) No 
department_id        int(11)     No 
position_id          int(11)     No 
end_date             date        No 
t_stamp              datetime    No 

有任何想法吗?

4

4 回答 4

2

语法看起来很好。

我在 Fiddle 中尝试了查询,并且成功构建了架构。

这是我使用的代码:

CREATE TABLE temp_inventory_cust(
customer_id int(11),
first_name varchar(50)
);

INSERT INTO temp_inventory_cust (customer_id,first_name) VALUES (1,'Ankit');

如果要包含引号,请在使用引号之前使用转义序列 ()

INSERT INTO temp_inventory_cust (customer_id,first_name) VALUES (1,'\'Ankit\'');

在这里检查:

SqlFiddle

更新:

尝试使用双引号而不是单引号:

  INSERT INTO temp_inventory_cust (customer_id,first_name) VALUES (1,"Ankit");
于 2013-02-20T07:11:54.127 回答
0

根据您的错误,您想' 在字符串中添加以进行转义',您需要添加\'

MySQL server version for the right syntax to use near '\'fred\')' at line 1.

将查询更改为

 insert into temp_inventory_cust (`customer_id`,`first_name`) values (34,'\'fred\''); 

它也会在数据库中添加引号,因此记录将是'fred'

如果您不想添加引号,请使用

insert into temp_inventory_cust (`customer_id`,`first_name`) values (34,'fred'); 

参考http://dev.mysql.com/doc/refman/5.0/en/string-literals.html

于 2013-02-20T07:03:14.213 回答
0

如果您可以共享您的表结构会更好,但我的第一眼就说“问题必须在表名字段类型中”,它不接受字符串。交叉检查您在数据库中的归档类型。

于 2013-02-20T06:50:02.103 回答
0

如果您直接在 phpmyadmin 数据库中进行此查询,那么没问题

但如果你使用 php 代码,那么你必须删除“'”,查询是:

 insert into temp_inventory_cust (customer_id,department_id) values (34,2);
于 2013-02-20T06:50:34.650 回答