我有一个更新查询
$query = $db->prepare("UPDATE user SET
UserID
='6',UserName
='xyz' WHERE UserID= '6' ");查询-> execute (),
运行良好,但当我更改字段UserName为UserName
$query = $db->prepare("UPDATE user SET
UserID
='6',UserNamee
='xyz' WHERE UserID= '6' ");查询-> execute (),
它应该显示错误,但是没有显示任何错误
我只是想在我的项目中处理这些错误。
您可以使用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'; }
PDO有各种错误模式,您可以将其作为driver_options
参数传递给构造函数。你可以在http://php.net/manual/en/pdo.setattribute.php上找到它们。大多数人使用array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
你应该使用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);
$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();