抓住mysql pdo错误

时间:2012-10-09 13:08:46

标签: php mysql pdo

我正试图抓住pdo。我有以下功能:

  function get_editusers($db)  
  {    
    $result = $db->query("SELECT firstname, middlename,surname,fullname,gender, birthdate,homelanguage,department,employeetype,employeestatus,idnumber FROM Persons where employeeid='$employeeid'"); 
    return $result; 
  } 
  $useredit = get_editusers($db); 

我如何知道查询是否正确运行?如果不成功,我希望执行某项行动,但不确定如何“抓住”错误。

if($useredit="failed"){ action if failed} else { action if true}

提前致谢,

3 个答案:

答案 0 :(得分:2)

function get_editusers($db){    
    try {
         $result = $db->query("SELECT firstname, middlename,surname,fullname,gender, birthdate,homelanguage,department,employeetype,employeestatus,idnumber FROM Persons where employeeid='$employeeid'"); 
         return $result; 
    } catch(PDOException $ex) {
         return $ex;
    }
}

$result = get_editusers($db);
if(isset($result->errorInfo)){
    die($result);
}

答案 1 :(得分:1)

简单的try / catch块可以工作:


    try{
        $result = $db - > query("SELECT firstname, middlename,surname,fullname,gender, birthdate,homelanguage,department,employeetype,employeestatus,idnumber FROM Persons where employeeid='$employeeid'");
    return $result;
    }
    catch(PDOException $exception){
        return $exception;
    }

或者,如果您只想返回true / false值而不是特定的异常:


    $result = $db -> query("SELECT firstname, middlename,surname,fullname,gender, birthdate,homelanguage,department,employeetype,employeestatus,idnumber FROM Persons where employeeid='$employeeid'");

    if (!$result){
        return false;
    }
    else{
        return true;
    }

答案 2 :(得分:0)

PDO有一个函数,这个函数检索错误信息。也许它会有所帮助。

PDO errorinfo