我有一个包含字段id,poll_id,row,col,color,amount的表。当我尝试使用
插入记录时$sql = "INSERT INTO `updating` VALUES ('','$poll_id', '$row', '$col', '$color', '$amount')";
$insert = mysql_query($sql, $pp) or die(mysql_error());
它会插入记录,但会将color
字段留空,并在“金额”字段中添加“0”!
当我将$sql
输出到浏览器,然后复制并粘贴到phpMyAdmin时,它可以正常工作。经过几个小时的努力,我尝试从color
和amount
字段开始,然后逐个添加其他字段。一切正常,直到我添加了poll_id
字段(最后一个要重新添加的内容)然后又恢复为不插入color
和amount
字段。
我甚至会切换到mysqli并开始阅读文档,但我不明白。
我已阅读本网站上处理此问题的所有其他问题,其中大多数问题都是针对抛出的错误。我没有收到任何错误消息,它只是没有插入两个字段。我已经尝试重命名字段,将数据类型从例如ENUM更改为VARCHAR,但都无济于事。
我受到了阻碍,非常感谢你的帮助。
更新
$ sql的内容是:
INSERT INTO `updating` VALUES ('','2', '2', '10', 'yellow', '100')
表格ddl是:
CREATE TABLE IF NOT EXISTS updating
(
id mediumint(8) NOT NULL AUTO_INCREMENT,
poll_id smallint(4) NOT NULL,
row enum('0','1','2','3','4','5','6','7','8','9','10','11') NOT NULL,
col enum('0','1','2','3','4','5','6','7','8','9','10','11') NOT NULL,
color enum('green','yellow','red','blue') NOT NULL,
amount decimal(12,0) NOT NULL,
PRIMARY KEY (id), UNIQUE KEY entry (row,col)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='per vote color flip' AUTO_INCREMENT=16