【问题标题】:Codeigniter 3.1 - Get database error numberCodeigniter 3.1 - 获取数据库错误号
【发布时间】: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 状态?

任何帮助将不胜感激。

【问题讨论】:

标签: php mysql codeigniter


【解决方案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 生成的错误,而不是来自存储过程和触发器的用户定义错误。
猜你喜欢
  • 2012-11-26
  • 2012-08-03
  • 2019-11-12
  • 2017-01-10
  • 2018-09-18
  • 2017-06-06
  • 1970-01-01
  • 2018-04-15
  • 1970-01-01
相关资源
最近更新 更多