前回の記事では「PHPデータベース学習でPDOを使ってクエリ結果を取得する方法」についてお届けしました。 」では、PDO を使用してクエリ結果を取得する方法に関する関連知識を詳しく紹介しています。この記事では、PHP で PDO エラーを処理する方法を見てみましょう。皆様のお役に立てれば幸いです。
前回の学習では、PDO を通じてクエリ結果を取得する方法を学習しました。次に、PDO エラー処理について学習する必要があります。PDO には 2 つの取得方法があります。プログラム内のエラー情報メソッドは、errorCode()
メソッドと errorInfo()
メソッドです。次に、これら 2 つの方法の応用例を見てみましょう。
errorCode() メソッドと errorInfo() メソッドがエラーを処理する方法を理解する前に、まず PDO のエラー処理モードを見てみましょう。
PDO エラー処理モード
PDO には 3 つの異なるエラー処理モードが用意されており、さまざまなスタイルに対応できるだけでなく、プログラミングによって、拡張機能がエラーを処理する方法を調整することもできます。次に、これら 3 つの異なるエラー処理方法を紹介します。
<span style="font-size: 16px;">PDO::ERRMODE_SILENT<strong></strong></span><span style="font-size: 16px;"><strong></strong></span>
#PDO::ERRMODE_SILENT はデフォルト モードを表します。この場合、エラーが発生すると、PDO はエラー コードを設定するだけで、他の操作は実行されません。 2 つのメソッド
PDO::errorCode() と
PDO::errorInfo() を使用して、ステートメントをチェックし、データベース オブジェクトをチェックします。
PDO::ERRMODE_WARNING <span style="font-size: 16px;"><strong></strong></span><span style="font-size: 16px;"></span>
<span style="font-size: 16px;"> <strong></strong></span>#PDO::ERRMODE_EXCEPTION モードではエラー コードも設定できます。一見してエラー コードを設定することに加えて、PDO は PDOException 例外クラスをスローし、そのプロパティをエラー コードを反映するように設定することもできます。エラーメッセージ。 PDO::ERRMODE_EXCEPTION モードは、デバッグ時にも非常に便利で、スクリプト内のエラーが発生した箇所を効果的に拡大するため、コード内の潜在的な問題のある領域を迅速に指摘できます。
を使用してエラー コード文字列を標準化し、さまざまな PDO ドライバーがネイティブ コードを適切な SQLSTATE コードにマッピングする役割を果たします。
PDO::errorCode()
SQLSTATE コードを返します。
このエラーに関する詳細情報が必要な場合、PDO には、SQLSTATE コード、特定のドライバー エラー コード、およびエラーを返す
PDO::errorInfo() メソッドも用意されています。ドライバーの文字列の配列。
次に、例を通じて PDO インスタンスの作成とエラー モードの設定を見てみましょう。例は次のとおりです:
<?php $dsn = 'mysql:dbname=test;host=127.0.0.1'; $user = 'root'; $pwd = 'root'; try { $pdo = new PDO($dsn, $user, $pwd); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } ?>
例は次のとおりです:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$pdo = new PDO($dsn, $user, $pwd, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));</pre><div class="contentsignin">ログイン後にコピー</div></div>
上記は、PDO の 3 つのエラー処理モードです。 PDO::errorCode() メソッドを見てください。
PDO::errorCode() 方法可以返回一个 SQLSTATE,一个由 5 个字母或数字组成的在 接下来我们通过示例来看一下通过 PDO 连接数据库,并通过 errorCode() 方法获取错误代码。 示例如下: 输出结果: 上述结果便是通过 errorCode() 方法获取错误代码。接下来我们看一下最后一种方法PDO::errorInfo() 方法。 不同的是errorInfo() 方法的返回值为一个数组,它包含了相关的错误信息。 接下来我们通过示例来看一下使用 PDO 中的 query 方法完成数据查询操作,并通过 errorInfo() 方法获取错误信息。 示例如下:## メソッド <strong><span style="font-size: 20px;"></span></strong>
PDO::errorCode() このメソッドは主に、データベース ハンドルの操作時に発生するエラー コードを取得するために使用されます。このエラー コードは SQLSTATE コードと呼ばれます。 ANSI SQL
标准中定义的标识符。 简单可以理解成,一个 SQLSTATE 由前面两个字符的类值和后面三个字符的子类值组成。<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$pwd = 'root';
try {
$pdo = new PDO($dsn, $user, $pwd);
$sql = 'select * from user';
$res = $pdo -> query($sql);
echo 'errorCode 为:'.$pdo -> errorCode().'<br>';
foreach ($res as $key => $value) {
echo '序号:'.$value['id'].'; 姓名:'.$value['name'].'; 年龄:'.$value['age'].'; 性别:'.$value['sex'].'<br>';
}
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
<strong><span style="max-width:90%">PDO::errorInfo() </span></strong>
方法PDO::errorInfo()
方法与PDO::errorCode()
方法一样都是用于获取操作数据库句柄时所发生的错误信息。<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$pwd = 'root';
try {
$pdo = new PDO($dsn, $user, $pwd);
// $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'select * from userr';
$res = $pdo -> query($sql);
echo 'errorInfo 为:<br>';
print_r($pdo -> errorInfo());
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
上述示例中,我们查询了一个不存在的数据库,输出结果:
其中我们需要注意的是:PDO 和 PDOStatement 对象中都有 errorCode() 和 errorInfo() 方法,如果没有任何错误,errorCode() 返回的是 00000;否则就会返回一些错误代码。而 errorInfo() 返回的是一个数组,包括 PHP 定义的错误代码和 MySQL 的错误代码及错误信息。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
以上がPHP データベース学習の PDO でエラーを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。