4.11 | エラーメッセージを表示する | ||
odbc_exec関数やodbc_fetch_row関数などを実行したとき、その命令文やテーブル・フィールド構造などの影響で、データベース側でエラーが発生する場合があります。たとえば、存在しないテーブル名を指定した、存在しないフィールド名を指定した、主キーの重複でレコード追加できないなど、さまざまなエラーが発生します。 そこで、「odbc_errormsg」関数を使うと、直近の命令文で発生したエラーメッセージを取得することができます。 次の例では、主キーである「社員コード」フィールドに、既存のレコードと同じ値を追加処理することで、意図的にエラーを発生させています。 なお、実際には、odbc_errormsg関数を使わなくても、エラーが発生した命令文の実行時点でPHP固有の形式(エラーの発生したスクリプトの行番号なども表示)でエラーメッセージが表示されます。odbc_errormsg関数を使うと同じようなメッセージが重複して表示されてしまいますので、エラーが発生する可能性がある命令文の方はエラーは表示しないように抑止しておきます。それには関数名の直前に「@」記号を記述します。 ※PHPでは専用の関数を使ってエラーメッセージを抑止することも可能です。 <?php
1回目の処理ではレコード追加に成功します$DSN = "AccessPHP"; //データソース名 $DBUSER = ""; //ログインユーザー名 $DBPASSWORD = ""; //パスワード //Accessデータベースに接続 if (! $con = odbc_connect($DSN, $DBUSER, $DBPASSWORD)) { exit("Accessデータベースに接続できませんでした!"); } //レコードを追加するSQLを組み立て $sql = "INSERT INTO 社員 (社員コード, フリガナ, 氏名, 在籍支社, 部署名, 誕生日) VALUES (9999, 'タカハシ イチロウ', '高橋 一朗', '北海道支社', '営業部', #1985/08/08#)"; //SQLを発行 if (@odbc_exec($con, $sql)) { print "レコードの追加に成功しました!"; } else { print "レコードの追加に失敗しました!<BR><BR>"; print "エラー内容は次の通りです。<BR>"; print "<B>" . odbc_errormsg($con) . "</B>"; } //ODBCとの接続を解除 odbc_close($con); ?> 同じ処理(同じ社員コードを追加)をもう一度実行するとエラーが発生します |
|||
|
Copyright © T'sWare All rights reserved |