4

我有一个更新查询

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

它运行良好,但是当我将字段UserName更改为UserNamee

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

它应该显示错误,但它没有显示任何错误

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

4

4 回答 4

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'; }
于 2013-05-09T10:23:32.163 回答
0

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

于 2013-05-09T07:16:09.177 回答
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);
于 2013-05-09T07:22:40.987 回答
-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();
于 2013-05-09T07:25:48.947 回答