php – 在Codeigniter中使用oracle数据库获取错误号

首先抱歉我的英语不好..

我在模型中有这个功能:

function insertUser($data){

$sql = "INSERT INTO USERS VALUES (?, ?, ?, ?, ?, ?, ?, ?)";

$query = $this->db->query($sql, array(
    $data["uname"],
    $data["nome"],
    $data["dnuser"],
    $data["muser"],
    $data["fruser"],
    $data["cpuser"],
    $data["euser"],
    md5($data["passu"])
  ));

//return $this->db->_error_number();

} 

我有一个主键,当数据正确时,该功能可以工作,但是当插入一个重复键时,该功能不起作用.但我怎么知道呢?我的意思是我如何能够捕获错误ORA-00001?

BTW注释行不起作用..

非常感谢你!!

最佳答案 你可以使用try catch block …

function insertUser($data){

$sql = "INSERT INTO USERS VALUES (?, ?, ?, ?, ?, ?, ?, ?)";

try{
$this->db->trans_start();
$query = $this->db->query($sql, array(
    $data["uname"],
    $data["nome"],
    $data["dnuser"],
    $data["muser"],
    $data["fruser"],
    $data["cpuser"],
    $data["euser"],
    md5($data["passu"])
  ));
$this->db->trans_commit();
}
catch(Exception $ex){
$this->db->trans_rollback();
echo "Error:".$ex;
}
} 

你可以查看以下文章..

http://ellislab.com/codeigniter/user-guide/database/transactions.html

点赞