質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

285閲覧

try catchの例外処理

ryusan_012

総合スコア59

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/08/08 08:28

編集2018/08/08 08:33

try_catchの例外処理にて2パターンだしたいんですが、何かいい方法ありますか?
"データベース接続エラー"と"データベース登録エラー"の2つを出したいです。

require_once 'db.php'; try { //データベース接続 $dbh = new PDO(dsn, user, pass); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $dbh->prepare("INSERT INTO touroku(hoge1, hoge2, hoge3) VALUES (hoge_a, hoge_b, hoge_c)"); $stmt->execute(); } catch(PDOException $e) { echo $e->getMessage(); if ($dbh == null) { echo "データベース接続に失敗しました。"; } else { echo "データベース登録に失敗しました。"; } } } $dbh = null;

試しにcatchの中でifにより表示を変えてみたんですが、この条件だと接続エラーのときにPHPエラーが出てしまいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

なんのための PDOException なのかと。
$e として受信した PDOException なら、$e->getCode() すれば SQLSTATEエラーコードを取得できるので、
例えばmysqlなら MySQL :: MySQL 5.6 リファレンスマニュアル :: B.3 サーバーのエラーコードおよびメッセージ にいくつか事例が紹介されています。
PostgreSQLなら付録A PostgreSQLエラーコードでしょうか。

投稿2018/08/08 08:40

編集2018/08/08 08:47
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryusan_012

2018/08/09 00:12

ありがとうございました、mysqlだったので参考ページもいただき助かりました。 エラーコードってこんなにあるのですね
guest

0

$e で分ければよいのでは?

投稿2018/08/08 08:31

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryusan_012

2018/08/09 00:13

ありがとうございました
guest

0

getCodeで受け取ったエラーコードと比較でやればできました。
ありがとうございます。

投稿2018/08/09 00:11

ryusan_012

総合スコア59

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問