• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DB接続やInsertでのエラーを画面に表示)

DB接続やInsertでのエラーを画面に表示する方法

このQ&Aのポイント
  • PHP、MySQLにて、とあるデータを画面から入力しDBへInsertするようなサイトを構築しています。エラーメッセージを画面上に表示する方法についてご質問です。
  • データ型の不一致については、入力時に文字数や半角英数のチェックを行い、不一致が起こらないようにしています。
  • エラーコードを受け取り、それに基づいてメッセージを表示することでエラーメッセージを実現することができます。参考になりそうなサイトもありますので、ご紹介いたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答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-error.php

buttero
質問者

お礼

ありがとうございます。PDO、mysql_errorともに初めて見る内容で吸収できるまで時間がかかりそうですが、がんばって勉強します。ありがとうございました。

その他の回答 (2)

noname#244856
noname#244856
回答No.3

訂正 × if (!isset($_REQUEST['name']) || !is_string($id = $_REQUEST['name'])) { ○ if (!isset($_REQUEST['name']) || !is_string($name = $_REQUEST['name'])) {

noname#244856
noname#244856
回答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/1315372181 http://stackoverflow.com/questions/4361459/php-pdo-charset-set-names 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'); }

buttero
質問者

お礼

詳細なサンプル、ありがとうございます。また初級者なので、わからないことだらけですが、がんばって吸収しようと思います。勉強の大変貴重なヒントになりました。ありがとうございます。

関連するQ&A