我正在使用 zend 框架并想在 mysql 数据库中插入数据。程序遇到数据库中已存在的行时抛出错误。如何简单地忽略重复数据并继续下一行。Zend框架中是否有诸如插入忽略之类的方法?我在网上找不到这个问题的确切答案
谢谢
我正在使用 zend 框架并想在 mysql 数据库中插入数据。程序遇到数据库中已存在的行时抛出错误。如何简单地忽略重复数据并继续下一行。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);