我会在我正常工作后立即进行消毒和逃避。
此时,使用选择查询验证数据库连接和选择。奇怪的是,如果我接受这个插入查询并直接从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”附近使用正确的语法
编辑:我确信其中没有其他电子邮件具有相同的唯一性。查看表格中的电子邮件列表,并且没有那些垃圾邮件。
答案 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');