我在寫一個測驗網站。
發生的事情是:插入重複項的INSERT命令
- 一個頁面上有和問題,四個按鈕或文本框。
- 當你點擊一個按鈕,它 自稱像地址 答案編號:
?q=[question number]&a=[answer].
- 如果問題 使用文本框其職位的答案。
- 然後,此代碼應該檢測到 某些內容已發送給它, 將其寫入數據庫。
- 用戶標識存儲在cookie中。
- 數據庫中還有一個關鍵列。這個想法是,它存儲了用戶長時間提交的所有答案,用戶可以更改答案。
<?PHP mysql_connect("------", "------", "------") or die(); mysql_select_db("------") or die(); $q=$_GET['q']; if(isset($_GET['a'])){ $a=$_GET['a']; } else { $a=$_POST['longanswer']; } if(isset($a)){ $u=$_COOKIE['id']; if($qust['atype']==1){ mysql_query("INSERT INTO answers (`userid` ,`answer` ,`qid`) VALUES ($u, $a, $q);"); } else { mysql_query("INSERT INTO answers (`userid` ,`answer` ,`qid`) VALUES ($u, '$a', $q);"); } } ?>
我不認爲它應該的問題,但後來的代碼,它與查詢的SELECT命令的數據庫。
當我運行此代碼時,它似乎輸入2或3個條目到數據庫。這個趨勢似乎是,當我運行代碼時,它輸入了先前的答案,然後是新的答案。 任何幫助將不勝感激。謝謝,
洛根
對特定用戶提出的問題有多個答案是否無效?您可能需要考慮在您的表上使用唯一約束來強制執行該操作。 – mopoke 2009-12-16 00:41:46
看來你可能已經切斷了你的一些代碼,如果是這樣的話,你能否包括其餘的代碼。 – Dostee 2009-12-16 00:44:00
*咳嗽*。這看起來非常容易受到SQL注入的影響。請逃避你的變量... – Franz 2009-12-16 00:49:34