这里的表结构错误:重复的项目“1”键“R_ID”
CREATE TABLE IF NOT EXISTS `result` (
`res_id` int(11) NOT NULL AUTO_INCREMENT,
`s_id` int(10) NOT NULL,
`i_id` int(6) NOT NULL,
`r_status` text NOT NULL,
`r_score` decimal(6,0) NOT NULL,
PRIMARY KEY (`res_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
我搜索了一个解决方案,并尝试在不同的场合,从头开始构建表,删除和导入回来,检查索引。正如你所看到的,我已经将id重命名为res_id,但是当我在浏览器上运行它时,错误仍然显示r_id。
如果有所作为,当id未设置为自动增量时,弹出相同的错误。
下面是我想要插入数据库的页面的代码片段。
//retrieve existing r_id
$sql_res = "SELECT res_id FROM result ORDER BY res_id DESC LIMIT 1";
$query_res = mysql_query($sql_res) or die("MySQL Error: " . mysql_error());
$data_res = mysql_fetch_assoc($query_res);
$resid_count = $data_res['res_id']+1;
//echo "<br>Result: " . $resid_count;
// insert result to table
$sql_result = "INSERT INTO result (res_id, r_score, s_id, i_id) VALUES ('" . $resid_count . "', '" . $correct . "', '" . $id . "', '" . $ins_id . "')";
mysql_query($sql_result) or die ("Error: " . mysql_error());
编辑:我改变了你的建议代码。从INSERT中取出res_id。它仍然表示r_id的重复条目。我进行了试验和错误,并创建了另一个具有相同结构的'分数'来替换'结果'。想知道是否相同的表名给它的问题(可以多次运行该页面导致此问题?)。与分数表相同的结果。
任何帮助将不胜感激。我卡在这里,不能继续我的项目。谢谢。
Atikah
如果您的res_id是AUTO_INCREMENT,则无需将其放入您的插入查询中。它将自动设置 – Svetoslav 2013-04-07 10:42:57
您是否有任何触发器设置? – 2013-04-07 10:43:08
其中是r_id'??你的意思是res_id? – 2013-04-07 10:45:49