我已将此$wpdb
插入到我的表格中。该表中的唯一列是唯一的列,因此,如果该值已存在,则SQL应该无法正常工作,而这种方式是通过这种方式计划的。现在,我的问题是我的日志完全充满了Duplicate entry
错误。我试图禁用错误日志记录,如您所见,但它不起作用。怎么了?
$wpdb->insert( 'test', array(
'test_column' => $test,
) );
//Hide wpdb errors if duplicate entry found
$wpdb->hide_errors();
答案 0 :(得分:1)
正如@EquaPro所说,隐藏错误不会解决问题:您正在尝试插入表中已经存在的唯一值。
相反,您可以在插入值之前检查该值是否存在:
if ( ! $wpdb->get_results( $wpdb->prepare('SELECT test_column FROM table WHERE test_column = %s', $test) ) ) {
$wpdb->insert( 'test', array(
'test_column' => $test,
) );
}
...,或者您可以进行INSERT IGNORE
查询并为自己保存一个查询:
$wpdb->query(
$wpdb->prepare('INSERT IGNORE INTO table (test_column) VALUES (%s)', $test)
);