2014-01-17 76 views
1

我有一個問題,這是我的代碼,當我添加一個具有相同名稱(nazov)的新輸入時,它會進入數據庫,因此它被複制。請幫助防止重複輸入的形式

if(isset($_POST['submit'])) 
{ 

    //get the name and comment entered by user 
    $nazov = $_POST['nazov']; 


    //connect to the database 
    $prip=mysqli_connect("xxx","xxx","xxx","xxx") or die('Error connecting to MySQL server'); 

    //insert results from the form input 
    $sql = "INSERT IGNORE INTO trieda (nazov) VALUES('$_POST[nazov]')"; 

    $result = mysqli_query($prip, $sql) or die(mysqli_errno($prip) == 1062 ? "Trieda už existuje" : 'Chyba načítavania databázy.'); 

    mysqli_close($prip); 
} 
+0

檢查在插入前是否在db中有該值。 –

+0

您正在使用'mysqli_ *'而不使用預準備語句。在你的數據庫中,該列應該是一個唯一索引,然後正確處理你的錯誤(對於重複值),或者你可以在插入之前使用php檢查重複項。 – IROEGBU

+0

你可以從表中獲取數據,然後檢查,或者你可以在數據庫中將'name'列設置爲唯一。 –

回答

0

你可以在你的MYSQL數據庫中設置你想要的唯一字段。所以如果你嘗試添加相同的值,你只會得到錯誤。

您也可以先選擇並在插入數據庫之前檢查數據庫中是否存在數據。

您可以做懶惰的解決方案,並使用REPLACE而不是INSERT。如果它存在,REPLACE更新它,否則插入。

+0

Alireza,謝謝替換解決方案,我寧願使用另一個,我不想替換它以備將來參考... – frank17