我有一个自定义 CodeIgniter 库,我需要在其中运行一些数据库操作。
为了访问数据库,我执行了这个命令,这是我在 StackOverflow 上学到的:
$this->CI =& get_instance();
我知道它正在工作,因为此命令有效:
$drop_query = "DELETE FROM product_images WHERE product_id = " . $this->CI->db->escape($product_id);
$this->CI->db->query($drop_query); // Tested, this works.
但是,insert_batch根本不起作用。没有返回 FALSE,没有错误……没什么。它只是死了。
$master_insert_array = array(
array(
'product_id' => $product_id,
'thumb_type' => 'original',
'filename' => $orig_file_name
),
array(
'product_id' => $product_id,
'thumb_type' => 'small',
'filename' => $small_file_name
) // Truncating the rest of this...
);
error_log("update_product_image_db: Insert_Batch Coming up:");
$batch_success = $this->CI->db->insert_batch('product_images', $master_insert_array);
error_log("\n\n".$this->CI->db->last_query()."\n");
*编辑:事实证明我的 $product_id 没有通过外键约束,导致 batch_insert 失败。*
第二个 error_log 在失败后永远不会运行。剧本就这样死了。
那么我怎样才能让 insert_batch 正确地返回一个 FALSE、一个错误或其他东西,而不是完全失败呢?
*更新:我也尝试将其放入 try/catch 块中,但没有成功。如果它未能通过外键约束,它将中止我的整个脚本。我目前认为 insert_batch 是一个写得不好的函数*
谢谢!