如何在php中捕获sql异常

时间:2017-04-28 08:54:46

标签: php codeigniter exception-handling

我在php中编写了rest apis,但是当api中插入了一些空值时会抛出错误。它将sql查询显示在响应页面中,如何阻止它显示,是什么在这种情况下最好的异常处理。我有点新的PHP,所以任何帮助表示赞赏。 下面是我写入查询的示例代码。

  $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;
    }

1 个答案:

答案 0 :(得分:1)

如果您正在谈论Codeigniters默认调试选项,您应该仔细看看@your db config

应该出现类似的东西

$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