首页 >数据库 >mysql教程 >如何从 PHP 中的 PDO 的'prepare()”方法检索 MySQL 错误?

如何从 PHP 中的 PDO 的'prepare()”方法检索 MySQL 错误?

Susan Sarandon
Susan Sarandon原创
2024-12-21 06:51:09595浏览

How to Retrieve MySQL Errors from PDO's `prepare()` Method in PHP?

如何从 PHP 中的 PDOprepare() 检索查询错误?

问题:

考虑以下 PHP 代码:

$st = $db->prepare("SELECT * FROM c6ode");

如何获得此查询的预期 MySQL 错误

解决方案:

要从prepare()中检索错误信息,您必须:

  1. 设置错误模式属性PDO: :ATTR_ERRMODE 到 PDO::ERRMODE_EXCEPTION。
  2. 禁用PDO::ATTR_EMULATE_PREPARES 功能,因为它会阻止 MySQL 服务器立即处理该语句。

这是一个示例:

<?php
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'localonly', 'localonly');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->prepare('INSERT INTO DoesNotExist (x) VALUES (?)');

此代码将引发异常并打印以下内容错误消息:

SQLSTATE[42S02]: Base table or view not found: 
1146 Table 'test.doesnotexist' doesn't exist

以上是如何从 PHP 中的 PDO 的'prepare()”方法检索 MySQL 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn