【问题标题】:how to get the result of active record insert in CodeIgniter如何在 CodeIgniter 中获取活动记录插入的结果
【发布时间】:2012-06-21 02:25:06
【问题描述】:

我在 CodeIgniter 中使用活动记录。
我可以成功地将数据插入数据库。
但是insert sql失败时如何获取结果呢?
现在它返回一个关于 sql 错误的 html。
我不想要这个 html 内容。

编辑

$data = array(
   'title' => 'My title' ,
   'name' => 'My Name' ,
   'date' => 'My date'
);

$this->db->insert('mytable', $data); 

简单的代码。但是当“名称”列具有唯一属性时。我正在向它插入一个重复的值。它返回 sql 错误的 html 内容。

我只是希望它返回错误代码而不是输出html内容。

【问题讨论】:

  • 到目前为止你写了什么代码?你想完成什么:你想得到一个查询被执行的消息,你想返回你刚刚在数据库中输入的值还是你想摆脱一个 SQL 错误?
  • 嗯,这就是模型,没有错。你的控制器和视图是什么样的?
  • 好诗 :) (我还需要 3 个字符才能去......)

标签: codeigniter activerecord


【解决方案1】:

要不收到 DB 错误消息,请确保您在文件 /application/config/database.php 中有 $db['default']['db_debug'] = FALSE

然后,在您执行(尝试)插入后,您可以运行:

$num_inserts = $this->db->affected_rows();

如果结果为 0,则插入失败,您可以显示自己选择的错误消息。

【讨论】:

  • 我不知道之前的情况,但 $this->db->affected_rows() 实际上在失败时返回 -1(插入后)。如果更新查询后没有更新任何行,则返回 0。
【解决方案2】:

使用这些功能

$errNo   = $this->db->_error_number();
$errMess = $this->db->_error_message();

他们会帮忙

【讨论】:

  • 你少了一个 ';'在第一行的末尾。
猜你喜欢
  • 1970-01-01
  • 2011-03-22
  • 2013-05-02
  • 2011-09-28
  • 1970-01-01
  • 2012-12-06
  • 1970-01-01
  • 2015-06-01
  • 1970-01-01
相关资源
最近更新 更多