Codeigniter 3.1 - 获取数据库错误号
Posted
技术标签:
【中文标题】Codeigniter 3.1 - 获取数据库错误号【英文标题】:Codeigniter 3.1 - Get database error number 【发布时间】:2017-02-12 04:19:13 【问题描述】:我有一个 mysql 存储过程,当应该删除用户时调用它。当有人试图删除管理员帐户行时,过程会发出 SQL 状态信号并引发错误。我的程序代码是 -
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Adminstrator cannot be deleted';
我正在使用 CodeIgniter 3.1。我想在我的代码中用它的 sql 状态来捕获这个错误消息。 我查看了以下链接但没有帮助 -
1) CodeIgniter - how to catch DB errors?
2)Database Error Handling problem in CodeIngniter
我观察到有一种方法$this->db->_error_number();
可用于获取错误号/sql 状态,但在最新版本中已弃用。
我想知道如果发生数据库错误,CodeIgniter 中是否有任何方法可以获取 SQL 状态?
任何帮助将不胜感激。
【问题讨论】:
类似: ***.com/questions/5209332/… | ***.com/questions/7843406/… 我已经访问过这些,在最新版本中无法使用 【参考方案1】:您提到的功能已被弃用:
将
_error_message()
和_error_number()
方法替换为error()
- 返回一个包含最后一个数据库错误代码和消息的数组。”
https://www.codeigniter.com/userguide3/changelog.html?highlight=_error_number#version-3-0-0
详情请见https://www.codeigniter.com/userguide3/database/queries.html#handling-errors。
【讨论】:
CI 的 error() 在 SQLSTATE 45000 期间为空。我不明白这种行为。看起来它只显示了我的 MySQL 生成的错误,而不是来自存储过程和触发器的用户定义错误。以上是关于Codeigniter 3.1 - 获取数据库错误号的主要内容,如果未能解决你的问题,请参考以下文章
如何解决消息:试图在 Codeigniter 中获取非对象错误的属性?