我使用zend框架並希望在mysql數據庫中插入數據。程序在遇到數據庫中已存在的行時拋出錯誤。如何簡單地忽略重複的數據並繼續到下一行。在Zend框架中有沒有插入忽略的方法? 我無法找到確切的答案,這個問題在網絡默默地忽略插入到數據庫中的重複條目Zend框架
感謝
我使用zend框架並希望在mysql數據庫中插入數據。程序在遇到數據庫中已存在的行時拋出錯誤。如何簡單地忽略重複的數據並繼續到下一行。在Zend框架中有沒有插入忽略的方法? 我無法找到確切的答案,這個問題在網絡默默地忽略插入到數據庫中的重複條目Zend框架
感謝
我會建議插入包裝成一個try/catch塊,像這樣:
try {
$db->insert(array());
} catch (Zend_Db_Exception $e) {
// ignored
}
更好的方式是檢查是否拋出異常,如果不拋出新的異常以獲得「其他」錯誤。
其他解決方案「昂貴的,因爲你要追求分貝第一」
$validator = new Zend_Validate_Db_NoRecordExists(
array(
'table' => 'database_table',
'field' => 'your_field_to_check_for_unique'
)
);
if ($validator->isValid('your_field_to_check_for_unique) {
// DO Insert
}
有可能使用「原始」的查詢。
這是一個例子,如何跳過已創建記錄和更新具體數值
$query = 'INSERT IGNORE INTO table_name (col1, col2, col3) VALUES (1, 2, 3), (4, 5, 6) ON DUPLICATE KEY UPDATE col3 = VALUES(col3)';
$dbAdapter->query($query);
感謝,這將捕獲錯誤,你有什麼想法whts重複條目的錯誤代碼號,I M用mysql。 – Ajeet
應該是141:http://rackerhacker.com/2007/08/09/mysql-error-codes/ – opHASnoNAME