从 PHP 中的 PDO prepare() 检索查询错误
在 PHP 中使用 prepare() 方法时要准备数据库查询,处理潜在的错误至关重要。问题中引用的原始示例未能有效处理查询错误。
要正确检查查询错误,请按照以下步骤操作:
1.配置 PDO 错误处理:
使用 setAttribute() 方法将 PDO 错误处理模式设置为 PDO::ERRMODE_EXCEPTION:
$st = $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
这指示PDO针对数据库错误抛出异常,从而更容易识别和处理他们。
2。禁用模拟:
通过将其值设置为 false 来禁用 PDO::ATTR_EMULATE_PREPARES 功能:
$st = $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
这会禁用PHP模拟层,确保MySQL服务器在调用后立即解析查询准备().
3.捕获异常:
由于 prepare() 方法现在会抛出错误异常,因此请使用“try-catch”块来处理它们:
try { $st = $db->prepare('INSERT INTO DoesNotExist (x) VALUES (?)'); } catch (PDOException $e) { echo "Error: " . $e->getMessage(); }
当不存在的表DoesNotExist为时,此代码将输出以下错误信息参考:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.doesnotexist' doesn't exist
以上是在 PHP 中使用 PDOprepare() 时如何有效处理查询错误?的详细内容。更多信息请关注PHP中文网其他相关文章!