2012-04-15 35 views
0

即時通訊我有一個PHP表單輸入數據到MySQL數據庫,我的問題是我如何處理重複記錄例如如果一個ID號已經exsists如何檢查exsists然後如果它並拋出一個錯誤信息,爲expale說:「ID已經在數據庫」,這裏是一個INSERT語句的例子,但是我想它進入在mysql中處理重複記錄插入語句

$values = $_POST; 
foreach ($values as &$value) { 
    $value = mysql_real_escape_string($value); 
} 

$sql1="INSERT INTO loan (loan_id) 
VALUES ('$values[loan_id]')"; 

$result = mysql_query($sql1); 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
} 

回答

1

只要有合適的UNIQUE KEY或上必須是唯一的,您將收到一個錯誤,當您嘗試插入重複記錄的字段主鍵。然後你可以在你的代碼中測試這個錯誤。

$values = $_POST; 
foreach ($values as &$value) { 
    $value = mysql_real_escape_string($value); 
} 

$sql1="INSERT INTO loan (loan_id) VALUES ('$values[loan_id]')"; 

$result = mysql_query($sql1); 
if (!$result) { 
    if (mysql_errno() == 1586) { 
     echo "ID is already in the database"; 
    } else { 
     die('Invalid query: ' . mysql_error()); 
    } 
} 
0

做之前檢查重複記錄的數據庫選擇像:select load(loan_id)load_id = $ values [loan_id] 比如果result> 0不插入並給用戶提供錯誤消息「ID已存在於數據庫中」,否則插入它。

0

在loan_id列中添加一個unique index constraint。當應用程序嘗試插入具有相同值的另一行時,MySQL將引發錯誤。

SQL將類似於:

CREATE UNIQUE INDEX loan_id_index ON table_name (loan_id); 
0

eigther在插入或執行和更新之前進行檢查。

檢查

"SELECT COUNT(*) FROM loan WHERE loan_id = '" . $values['load_id'] . "'" 

更新

"INSERT INTO loan (loan_id, some_field) VALUES ('". $values['loan_id'] ."', '". $values['some_field'] ."') ON DUPLICATE KEY UPDATE some_field = VALUES(some_field)";