跟踪PDO更新查询中的错误

时间:2013-05-09 07:12:14

标签: php mysql pdo

我有更新查询

  

$ query = $ db-> prepare(“UPDATE user SET UserID ='6',UserName ='xyz'WHERE UserID ='6'”);   $查询 - >执行();

它运行良好,但是当我将字段用户名更改为用户名

  

$ query = $ db-> prepare(“UPDATE user SET UserID ='6',UserNamee ='xyz'WHERE UserID ='6'”);   $查询 - >执行();

它应显示错误,但不显示任何错误

我只是想在我的项目中处理这些错误。

4 个答案:

答案 0 :(得分:1)

您可以使用errorCode()函数跟踪PDO中的错误此函数返回0000时没有错误,否则返回4位数字(错误代码),您可以尝试以下示例:

$query = $db->prepare("UPDATE user SET UserID='6',UserNamee='xyz' WHERE UserID= '6' ");         

$query->execute();

if($query->errorCode()=='0000')
{ echo 'no error'; }
else
{ echo 'error'; }

答案 1 :(得分:0)

PDO有各种错误模式,您可以将其作为driver_options参数传递给constructor。您可以在http://php.net/manual/en/pdo.setattribute.php找到它们。大多数人使用array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)

答案 2 :(得分:0)

你应该使用try-catch:

        try {

            $query = $db->prepare("UPDATE user SET UserID='6',UserName='xyz' WHERE UserID= '6' "); 
            $query->execute();

        } catch (PDOException $e) {
            echo $e->getMessage();
        }

请记住在数据库连接后执行此操作:

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

答案 3 :(得分:-1)

        $db->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
        $query = $db->prepare("UPDATE user SET UserID='6',UserNamee='xyz' WHERE UserID= '6' "); 

        if (!$query) {
              print_r($db->errorInfo());
        }
else
    $query->execute();