正確にaffected_rowsが何を返すかを確認しました。何かが削除された場合は>0を返し、何も削除されなかった場合は0を返すはずです。
しかし、商品を削除すると、商品IDを介して存在するため、削除されます。しかし、私のモデルでこれを実行しようとして、問題の製品が削除されたかどうかをテストしたい場合は、次のようにします。
function delete_product($id)
{
$tables = array('products', 'attributes');
$this->db->where('p_id', $id);
$this->db->delete($tables);
if ($this->db->affected_rows() > 0)
{
return TRUE;
}
else
{
return FALSE;
}
}
そして、そのように私のコントローラーに値を返します:
public function delete()
{
$id = $this->uri->segment(3);
$this->a_model->delete_product($id);
if($res == FALSE)
{
$this->session->set_flashdata('success_delete', 'Product deleted successfully.');
redirect('admin/index');
}
else
{
$this->session->set_flashdata('error_delete', 'Product not deleted. We gots an issue.');
redirect('admin/index');
}
}
戻り値は常にfalse、つまり0です。しかし、データベースをチェックして製品が削除されたかどうかを確認すると、製品は削除されます。誰かが私が間違っていることを指摘できますか?