首先抱歉我的英语不好..
我在模型中有这个功能:
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