這裏的表結構錯誤:重複的項目「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