我有一个像这样创建的db表
CREATE TABLE products(id INT,
name varchar(32),
PRIMARY KEY(id,name),
quantity int,
avail varchar(5) );
如果在命令提示符下使用以下命令,则会正确插入值:
INSERT INTO products(name,quantity,avail) VALUES('stuffed bear doll',100,'OF_ST');
虽然id是重复的
但是当我把它放在像这样的函数里面时
$query=sprintf("INSERT INTO products(name,quantity,avail) VALUES('%s',%d,'%s');",
$name,
$quan,
$avail);
mysql_query($query);
然后根本没有插入。
答案 0 :(得分:1)
您需要在create table语法中的id字段上设置auto_increment。您可以编辑列以添加它。
此外,如果$ quan无效,您的SQL语法将给您一个错误。在它周围加上引号:VALUES('%s','%d','%s')
答案 1 :(得分:0)
您的查询没有问题,但我认为name field is duplicate
的价值。由于您的表格结构id-name is primary
表示两行不能同时包含id
和name
字段的值。一次一个字段值可以相同但不是两者都不相同。在您的表中,id
字段的值始终为0
,因此如果在name
字段的任何行值中重复,则不会插入该行。请将id
作为主要和自动增量,以便更好。
谢谢