ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルでの PDO のエラー処理

PHP_PHP チュートリアルでの PDO のエラー処理

WBOY
WBOYオリジナル
2016-07-21 15:24:31724ブラウズ

オブジェクト指向のアプローチ
まず、接続エラーなどの処理を見てみましょう。 PHP における PDO のエラー処理は、オブジェクト指向のアプローチで処理されます:

コードをコピーします コードは次のとおりです:

try {
$db = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$db = null
} catch (PDOException $e) {
print "Error: " . $ e->getMessage() . "
"
}


ここでは、PHP 5 のオブジェクト指向の例外処理機能を使用します。例外が発生した場合に初期化するには、PDOException を呼び出して例外クラスを初期化します。
PDOException 例外クラスの属性構造:


コードをコピー コードは次のとおりです:
class PDOException extends Exception
{
public $errorInfo = null; // エラー情報については、以下を参照してください。 PDO::errorInfo() または PDOStatement::errorInfo() を呼び出して protected $message にアクセスします。 // 例外情報には Exception::getMessage() を使用して protected $code にアクセスします。 // SQL ステータス エラー コードを使用できます。 Exception::getCode () にアクセスします
}
?>


この例外処理クラスは、PHP 5 の組み込み例外処理クラスと統合されています。 PHP 5:


コードをコピー
コードは次のとおりです: class Exception
{
//Property
protected $message = '不明な例外' //Exception message
protected $code = 0; //ユーザー定義の例外コード
protected $file ; // 例外が発生したファイル名
protected $line; // 例外が発生したコード行番号
// メソッド
getMessage() / / 例外メッセージを返す
Final function getCode(); // 例外コードを返す
Final function getFile() // 例外が発生したファイル名を返す
Final function getLine(); // 例外が発生したファイル名を返す例外が発生しました
Final function getTrace(); // backtrace() 配列
Final function getTraceAsString(); // 文字列にフォーマットされた getTrace() 情報
}


それに対応して、getFile( ) と getLine() をコード内で適切に呼び出してエラーを特定し、デバッグをより便利にすることができます。
プロセス指向のアプローチを使用します
最初にコードを確認します:


コードをコピーします

コードは次のとおりです:
<$db = new PDO('mysql:host=localhost;dbname=?テスト'、$user、$pass); $rs = $db->query("SELECT aa,bb,cc FROM foo");
if ($db->e​​rrorCode() != '00000') {
print_r($db ->errorInfo());
$arr = $rs->fetchAll();
$db = null;

PDO オブジェクトと PDOStatement オブジェクト errorCode() メソッドと errorInfo() メソッドがあります。エラーがない場合、errorCode() は 00000 を返します。それ以外の場合は、いくつかのエラー コードが返されます。 errorInfo() は、PHP および MySQL のエラー コードとエラー メッセージで定義されたエラー コードを含む配列を返します。配列の構造は次のとおりです。
Array
(
[0] => 42S22
[1] => 1054
[2 ] => 'フィールド リスト' の不明な列 'aaa'
)
各クエリの実行後の errorCode() の結果は最新であるため、エラー メッセージの表示を自分で簡単に制御できます。
PHP およびデータベース開発に PDO を使用するときに再びエラーが発生した場合はどうすればよいですか?上記のように扱います。


11.3.4 PDO エラー処理


PDO は、プログラム内のエラー情報を取得する 2 つのメソッドを提供します。1 つは errorCode() メソッドで、もう 1 つは errorInfo() メソッドです。

1. errorCode()メソッド

errorCode()メソッドは、データベースハンドルの操作時に発生するエラーコードを取得するために使用されます。このメソッドの構文形式は次のとおりです。

01 string errorCode (void) errorCode ( ) メソッドの戻り値は SQLSTATE で、5 つの数字と文字で構成されるコードです。以下は、errorCode() メソッドの使用例です。
[プログラム 11-17] CD code11pdoerrorCode.php



コードをコピーします

コードは次のとおりです:


$ dsn = 'mysql:dbname= ショップ;ホスト=ローカルホスト';
$user_name = 'root';
$pdo = 新しい PDO($dsn, $user_name, $user_psw); ->exec("update mytable set age=28 where id=1 ");//テーブル mytable が存在しませんecho "errorCode is: ".$pdo->errorCode()?>
上記のコードによって出力されるエラーコードを図 11-13 に示します。

2. errorInfo() メソッド

errorInfo() メソッドは、データベースハンドル操作時に発生するエラー情報を取得するために使用されます。 このメソッドの構文形式は次のとおりです。

01 array errorInfo (void) errorInfo() の戻り値。メソッドは配列です。配列には関連するエラー情報が含まれます。 errorInfo() メソッドを使用したサンプル コードは次のとおりです。

[プログラム 11-18] CD code11pdoerrorInfo.php
コードは次のとおりです。
$dsn = 'mysql:dbname=shop;host=localhost';
$user_psw = 'root'; , $user_name, $user_psw);
$ pdo->exec("update mytable set age=28 where id=1 ") //テーブル mytable が存在しません
echo "errorInfo is: "; ->errorInfo());
?> ;


上記のコードによって出力されるエラー メッセージを図 11-14 に示します。




http://www.bkjia.com/PHPjc/324303.htmlPHP_PHP チュートリアルでの PDO のエラー処理www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/324303.html技術記事オブジェクト指向のアプローチ まず、接続エラーなどの処理を見てみましょう。 PHP における PDO のエラー処理は、オブジェクト指向のアプローチで処理されます。 次のようにコードをコピーします。 ?php try { $db = new PD...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。