Search
  1. mysql_error〔直近のMySQL処理からエラーメッセージを返す〕
  2. mysql_errno〔直近のMySQL処理からエラーメッセージのエラー番号を返す〕
  3. エラーが発生したらエラー内容をメール送信

mysql_error
直近のMySQL処理からエラーメッセージを返す

unknown

string mysql_error ( resource 接続ID ] )

直近の処理からエラーメッセージのエラー番号とメッセージを返します。 エラーが発生していない場合は0を返します。

直近に実行されたMySQL関数のエラーコードのみを返すため、他のMySQL関数をコールする前に値をチェックします。

PHPのMySQL関数はエラーが発生すると、自動的にエラーメッセージをブラウザに出力します。 このエラーメッセージを非表示にするには、関数の頭にエラー演算子(@を付けて使用します。

<?
/* MySQL接続開始 */
$dbc=mysql_connect("localhost""root""");
/* データベース(db_sample)選択 */
if(!mysql_select_db("db_sample"$dbc)){
    /* 失敗した場合は、エラー番号&エラーメッセージ表示 */
    echo mysql_errno($dbc).": ".mysql_error($dbc)."<br>\n";
}
/* クエリ送信 */
if(!mysql_query("SELECT * FROM tbl_sample"$dbc)){
    /* クエリに失敗した場合は、エラー番号&エラーメッセージ表示 */
    echo mysql_errno($dbc).": ".mysql_error($dbc)."<br>\n";
}
/* エラー出力例
1049: Unknown database 'db_sample'
1046: No Database Selected
*/
?>

mysql_errno
直近のMySQL処理からエラーメッセージのエラー番号を返す

unknown

int mysql_errno ( [ resource 接続ID ] )

直近のMySQL関数で発生したエラー番号を返します。エラーが発生していない場合は0を返します。 データベースバックエンドから返されるエラーは警告を発しないため、この関数を使ってエラー番号を取得します。

オプションの第1引数接続IDが指定されていない場合は、mysql_connect()関数により直近に開かれた接続が使用されます。 接続が確立されていない場合は、引数を指定せずmysql_connect()関数がコールされた時と同様に接続を確立します。 それでも接続が確立できない場合は、E_WARNINGレベルのエラーが発生します。

<?
/* MySQL接続開始 */
$dbc=mysql_connect("localhost""root""");
/* データベース(db_sample)選択 */
if(!mysql_select_db("db_sample"$dbc)){
    /* 失敗した場合は、エラー番号&エラーメッセージ表示 */
    echo mysql_errno($dbc).": ".mysql_error($dbc)."<br>\n";
}
/* クエリ送信 */
if(!mysql_query("SELECT * FROM tbl_sample"$dbc)){
    /* クエリに失敗した場合は、エラー番号&エラーメッセージ表示 */
    echo mysql_errno($dbc).": ".mysql_error($dbc)."<br>\n";
}
/* エラー出力例
1049: Unknown database 'db_sample'
1046: No Database Selected
*/
?>

エラーが発生したらエラー内容をメール送信

unknown

<?
/* MySQL接続開始 */
$dbc=mysql_connect("localhost""root""");
/* データベース選択 */
$db_select=mysql_select_db("db_customer"$dbc);
/* クエリ送信 */
$sql="SELECT * FROM tbl_customers";
$res=mysql_query($sql$dbc);
/* クエリに失敗した場合は、エラー内容をメール送信 */
if(!$res){
    //送信先
    $to="hogehoge@yahoo.co.jp";
    //件名
    $subject="【Database Error】";
    //本文
    $body.="TIME: ".date("Y-m-d H:i:s")."\n";
    $body.="SQL: ".$sql."\n";
    $body.="Error Message:".mysql_errno().": ".mysql_error()."\n";
    mail($to,$subject,$body,"") or die("メール送信失敗<br>\n");
    exit;
}
?>

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop

polarized women