【问题标题】:Catch SIGNAL SQLSTATE message using CI使用 CI 捕获 SIGNAL SQLSTATE 消息
【发布时间】:2023-03-20 00:59:02
【问题描述】:

我正在使用 存储过程 登录我的网站,并且我在存储过程中为不同的用户在不同的条件下显示不同的消息。

现在我不想向我的用户显示这些 MySQL 错误消息,我想显示正常消息。所以谁能告诉我如何捕捉这些错误信息。

我正在使用 codeIgniter (PHP) 框架。

这是我尝试过的代码:

public function authenticate($email, $password) { 
       $query = ""; 
       try
       { 
          $query = $this->db->query('CALL LOGIN("'.$email.'","'.$password.'")'); 
          if($query->num_rows() == 1) 
          { /* do some thing here */ } 
       }catch(Exception $e)
        { echo $e;} 
  }  

【问题讨论】:

  • 欢迎来到 Stackoverflow。分享到目前为止你尝试过的代码sn-ps。
  • 公共功能验证($email, $password){ $query = "";尝试{ $query = $this->db->query('CALL LOGIN("'.$email.'","'.$password.'")'); if($query->num_rows() == 1) { /* 在这里做一些事情 */ } }catch(Exception $e){ echo $e;} }
  • 在 PHP 中,如果 MySQL 使用 SIGNAL SQLSTATE - 它将被解释为 PHP Exception 并且消息将包含在异常对象中。将您的 echo $e 更改为您想向用户显示的任何内容。

标签: php mysql codeigniter stored-procedures


【解决方案1】:

要捕获由SIGNAL, 引发的错误,请在异常处理程序中使用GET DIAGNOSTICS

http://dev.mysql.com/doc/refman/5.6/en/get-diagnostics.html

【讨论】:

  • 感谢您的链接..@Marc Alff。 Marc 还有其他方法可以更轻松地获取消息吗?
猜你喜欢
  • 2012-07-08
  • 2014-11-15
  • 1970-01-01
  • 2013-12-10
  • 2021-06-13
  • 1970-01-01
  • 2014-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多