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

标签 php database oracle codeigniter error-handling

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

我在模型中有这个功能:

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 ??

顺便说一句,注释行不起作用..

非常感谢!!

最佳答案

您可以使用 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

关于php - 在 Codeigniter 中使用 oracle 数据库获取错误号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13782520/

相关文章:

php - 使用 PHP 连接到 Ratchet 网络套接字服务器

php - JavaScript 跨浏览器窗口关闭问题

c# - Log4Net 不写入数据库

MySQL从一个数据库插入另一个数据库

oracle - 为什么用户输入日期会丢失一天? (但不是在本地运行时?)

sql - DDL语句是否总是为您提供隐式提交,还是可以得到隐式回滚?

php - 在 Phalcon 中转发带页面的 anchor

javascript - Jquery 函数未触发 - onunload

sql - ORA 01114 - 将 block 写入文件的 IO 错误

java - 缺少 Artifact com.oracle :ojdbc7 in eclipse