找不到PHP MySQL插入语法错误

时间:2011-05-05 04:55:51

标签: php mysql

我会在我正常工作后立即进行消毒和逃避

此时,使用选择查询验证数据库连接和选择。奇怪的是,如果我接受这个插入查询并直接从mysql命令提示符运行它,它插入就好了。

subscibers表有3列不允许在任一列中使用NULL:

 Server version:         5.5.11 MySQL Community Server (GPL)
    +--------+-------------+------+-----+---------+----------------+
    | Field  | Type        | Null | Key | Default | Extra          |
    +--------+-------------+------+-----+---------+----------------+
    | id     | int(11)     | NO   | PRI | NULL    | auto_increment |
    | email  | varchar(45) | NO   | UNI | NULL    |                |
    | active | tinyint(4)  | YES  |     | 1       |                |
    +--------+-------------+------+-----+---------+----------------+
    3 rows in set (0.01 sec)

php中的代码:

$query = "INSERT INTO `subscribers`(`id`,`email`) VALUES(default,'ggg@nothing.com')";
print $query;    
mysql_query($query) or die(mysql_error());

插入的打印查询结果:

INSERT INTO `subscribers`(`id`,`email`) VALUES(default,'ggg@nothing.com')

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行“ggg@nothing.com”附近使用正确的语法

编辑:我确信其中没有其他电子邮件具有相同的唯一性。查看表格中的电子邮件列表,并且没有那些垃圾邮件。

3 个答案:

答案 0 :(得分:4)

不要在insert语句中包含id:

INSERT INTO `subscribers` (`email`) VALUES ('ggg@nothing.com');

或者将id设置为NULL

INSERT INTO `subscribers` (`id`,`email`) VALUES (NULL,'ggg@nothing.com');

答案 1 :(得分:1)

无需插入id,因为它是auto_increment并自动插入。

$query = "INSERT INTO subscribers(email) VALUES('"ggg@nothing.com"')";  
mysql_query($query) or die(mysql_error());

使用它。也建议使用MySQLi而不是MySQL函数。 快乐的编码!!

答案 2 :(得分:0)

我认为您不需要围绕列名或表名称使用这些特殊引号。试试这个

  

INSERT INTO订阅者(电子邮件)VALUES('ggg@nothing.com');