
PHP、MySQLにて、とあるデータを画面から入力しDBへInsertするようなサイトを構築しています。
正常に動作し、画面で入力した内容が作成したDBにしっかり登録されていることを確認できましたが、DB接続エラーやデータ型の不一致が生じた場合にそのエラーの内容をユーザにエラーメッセージとしてデザインされた画面上に表示させたいと思っています。
ちなみに、データ型の不一致については、不一致が起こらないように入力時(入力内容の確認画面の前)にて文字数、半角英数などのチェックはしてはじいています。
こういった場合はどのように作りこみをしていけば宜しいでしょうか。
何かエラーコードのようなものを受け取ることができれば、それを元にメッセージを用意するだけで実現できそうですが、考え方について教えて頂けますでしょうか。
どこか参考になりそうなサイト等もございましたら教えて頂けますでしょうか。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
PDOであればPDO::errorInfo、mysql_系であればmysql_errorで行けると思います。
http://www.php.net/manual/ja/pdo.errorinfo.php
http://jp1.php.net/manual/ja/function.mysql-erro …
ありがとうございます。PDO、mysql_errorともに初めて見る内容で吸収できるまで時間がかかりそうですが、がんばって勉強します。ありがとうございました。
No.3
- 回答日時:
訂正
× if (!isset($_REQUEST['name']) || !is_string($id = $_REQUEST['name'])) {
○ if (!isset($_REQUEST['name']) || !is_string($name = $_REQUEST['name'])) {
No.2
- 回答日時:
PDOならばPDO::errorInfoで1回1回チェックせずとも、PDO::ERRMODE_EXCEPTIONにエラーモードを設定すれば全て例外としてスローしてくれるのでとっても処理がラクになります。
http://php.net/manual/ja/book.pdo.php
http://www.phpbook.jp/tutorial/pdo/
http://takuya-1st.hatenablog.jp/entry/20110907/1 …
http://stackoverflow.com/questions/4361459/php-p …
http://www.tokumaru.org/d/20110322.html
<?php
try {
if (!isset($_REQUEST['id']) || !is_string($id = $_REQUEST['id'])) {
throw new Exception("invalid parameter 'id'");
}
if (!isset($_REQUEST['name']) || !is_string($id = $_REQUEST['name'])) {
throw new Exception("invalid parameter 'name'");
}
$pdo = new PDO('mysql:dbname=testdb;host=127.0.0.1;charset=utf8', 'user', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare('INSERT INTO myTable (id, name) VALUES (?, ?)');
$stmt->execute(array($id, $name));
echo 'inserting done.';
} catch (Exception $e) {
echo htmlspecialchars('error : ' . $e->getMessage(), ENT_QUOTES, 'UTF-8');
}
詳細なサンプル、ありがとうございます。また初級者なので、わからないことだらけですが、がんばって吸収しようと思います。勉強の大変貴重なヒントになりました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP等を用いて在庫数を表示・管...
-
VBA で、スペースを含むファイ...
-
セッションにIDを振って値を代入
-
処理後のページ内移動について
-
DBの値をチェックボックスに反...
-
フォームへの前回入力値をクリ...
-
PHPでじゃんけん勝負
-
文字列(×と÷)の文字化けについて
-
フォーム送信後の更新ボタンで...
-
php or条件検索結果と入力した...
-
同じページでフォームデータを...
-
GETとPOST以外のデータの渡し方...
-
リンク先のフォームに自動的に...
-
POSTを使わずに値を渡す方法
-
チェックボックスのうちひとつ...
-
PHPの初心者です。現在チェック...
-
PHPでフォームに表示させたCSV...
-
現在ラジオボタンのデータベー...
-
PHPエラー 教えて下さい
-
プルダウンリンクを外部ファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php+mysqlでの重複チェックにつ...
-
Flaskでサーバー立ち上げに関して
-
POSTの項目に追加
-
重複を防ぐ記述について教えて...
-
複数条件での検索について教え...
-
アップロードファイル名の文字化け
-
サブフォルダ内の全てのテキス...
-
php、sqlite3にデーター追加で...
-
phpで変数を使ってcopyできない
-
配列について教えて下さい。
-
$_SESSIONに渡した後はそのまま...
-
phpで掲示板を作りたい
-
JSONデータ登録について
-
$_REQUESTの意味を教えて下さい
-
空文字
-
PHP等を用いて在庫数を表示・管...
-
Fortranでのファイル名操作につ...
-
VBA で、スペースを含むファイ...
-
header()関数について
-
PHPでParse errorについて
おすすめ情報