如何在php中捕获sql异常
我正在用php编写rest api,但是当api中插入一些空值时会抛出错误。它将sql查询显示在响应页面中,如何阻止它显示,在这种情况下最好的异常处理是什么。我对php有点陌生,因此非常感谢您的帮助。 下面是我为查询而编写的示例代码如何在php中捕获sql异常,php,codeigniter,exception-handling,Php,Codeigniter,Exception Handling,我正在用php编写rest api,但是当api中插入一些空值时会抛出错误。它将sql查询显示在响应页面中,如何阻止它显示,在这种情况下最好的异常处理是什么。我对php有点陌生,因此非常感谢您的帮助。 下面是我为查询而编写的示例代码 $limit = " LIMIT ".$post_data['offset'].",".$post_data['limit']; $sql = "SELECT record_id from "; $shareResult= $this->d
$limit = " LIMIT ".$post_data['offset'].",".$post_data['limit'];
$sql = "SELECT record_id from ";
$shareResult= $this->db->query($sql)->result_array();
if(empty($shareResult[0]['record_id']) || $shareResult[0]['record_id'] != 0){
$query="SELECT *";
$result= $this->db->query($query);
if($result->num_rows()>0){
$res1=$this->db->query($qry)->result_array();
$res[0]=$res1[0];
$res[1]=$result->result_array();
return $res;
}
}else if($shareResult[0]['record_id'] === 0){
return false;
}
如果您谈论的是Codeigniters默认调试选项,那么您应该仔细查看一下您的数据库配置 应该会出现这样的情况
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'database_name',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array()
);
查看db_debug并将其设置为false。检查此帖子可能重复-。这可能会有帮助。请参考此-。基本上,您必须这样编写代码-尝试{/*放置代码*/}捕获异常$e{echo'catched Exception:',$e->getMessage,\n;}这取决于您在php中用于连接MySQL的MySQL api。每个问题都有几十个问题。我正在使用$this->db->querySelect*查询数据库。