2012-04-04 102 views
8

当前在我的控制器中,当添加新数据时,我验证了输入,并且如果有任何问题,它让用户知道,否则它将数据传递给模型以插入到数据库中Codeigniter数据库插入失败

我现在该如何去检查在模型中正确工作的插入语句,并让用户知道,如果没有。

下面的插入语句是否返回true或false,然后可以返回到控制器?

$this->db->insert('Faviroute_Addresses', $address_data); 

感谢所有帮助

回答

24

您可以使用

if($this->db->insert('Faviroute_Addresses', $address_data)) 
{ 
    // Code here after successful insert 
    return true; // to the controller 
} 

或者你可以使用

$this->db->insert('Faviroute_Addresses', $address_data); 
if($this->db->affected_rows() > 0) 
{ 
    // Code here after successful insert 
    return true; // to the controller 
} 
+0

有一点要注意,我最近遇到的是,如果您使用$ this-> db-> affected_rows()进行UPDATE查询,它将返回一个零,如果查询成功但没有信息从已经存在的ro中改变了W上。 – 2013-11-21 07:09:18

1

个人而言,我会避免使用

$this->db->affected_rows() 

插入方法。 SQLServer不会返回插入值,所以从

获取返回值
$this->db->insert(...) 

会更可靠。我会保留affected_rows检查 “UPDATE” S :)

UPDATE:

同样的道理也适用于

$this->db->delete() 

的affected_rows()函数不会在SQL Server上工作一个删除...