php – 没有num_rows()的Codeigniter句柄数据库错误
发布时间:2020-12-13 16:21:19 所属栏目:PHP教程 来源:网络整理
导读:我在查找CI中处理数据库错误的简单方法时遇到了麻烦.例如,我无法在数据库表中插入重复的条目.如果我尝试,我收到1062数据库错误. 建议的最常见解决方案是检查条目是否已存在并使用 $query- num_rows() 0 在if语句中以防止出错.这个方法对我来说似乎是多余的,
我在查找CI中处理数据库错误的简单方法时遇到了麻烦.例如,我无法在数据库表中插入重复的条目.如果我尝试,我收到1062数据库错误.
建议的最常见解决方案是检查条目是否已存在并使用 $query-> num_rows()> 0 在if语句中以防止出错.这个方法对我来说似乎是多余的,因为我正在执行额外的查询.理想情况下,我想检查主查询中是否发生错误,或者行是否受到影响. 我找到了以下可能有用的功能 $this->db->affected_rows() $this->db->_error_message() 但是我不确定如何使用它们. 我试过我的模型: $this->db->insert('subscription',$data); return $this->db->affected_rows(); 据我所知,应该返回受影响的行数.然后在我的控制器中我添加了: $affected = $this->Subscribe_model->subscribe($data); if ($affected < 1) { //display error message in view } else { $this->Subscribe_model->subscribe($data); //perform query } 不幸的是,脚本停止在模型中$this-> db-> insert(‘subscription’,$data);如果发生错误并显示整个数据库错误. 解决方法
尝试使用@ $this-> db-> insert(‘subscription’,$data);,@,在PHP中表示“抑制警告”.
作为替代方案 – 如果您知道数据是安全的,或者您愿意使用$this-> db-> insert_string,则可以在重复键上添加查询结尾. 这应该工作(未经测试): $this->db->simple_query( $this->db->insert_string( 'subscription',$data ) . ' ON DUPLICATE KEY ' . $this->db->update_string( 'subscription',$data,/* your where clause here */ ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |