1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

1人コンプAdvent Calendar 2022

Day 9

【便利】phpでpdoするときにSQLクエリエラーを表示したいなぁ

Posted at

初めに

僕・phpで無限ループを使って、MySQLサーバーをいじめるプログラムを作ったよ!でも、なんか動かないみたい。サーバーくん、どうして?

サーバー・無限ループを仕掛けて俺をこき使うような奴には教えねーよ

俺・しょぼん

俺・あ、そうだ、MySQLサーバーくんに聞いてみたらいいかもw

俺・MySQLサーバーくーん、教えて〜

エラー表示の魔法のコード

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

pdoの途中に、このコードを挟み込みましょう。
例えば、

try {
    // DB接続
    $pdo = new PDO(
        'mysql:host=ホスト名;dbname=データベース名;',
        '',
        '',
        [PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC]
    );

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//⇦ココ
    $stmt = $pdo->prepare('SELECT * FROM tablename');

    $stmt->execute();
 
    foreach ($stmt as $row) {

    }
} catch (PDOException $e) {
    // エラー処理
    echo $e->getMessage();
   } finally {
    // DBを閉じる
       $pdo = null;
   }

MySQLサーバー・あいよ
        「Error Code 1046 No database selected.」

俺・「あ、データベース作り忘れてたw」

サーバー「ドアホがw」

めでたしめでたし

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?