false を返して var について何も分からない PDO ステートメントに直面した場合ダンピング、この2つの黄金を思い出してくださいルール:
MySQL エラー メッセージを公開するように PHP と PDO を構成します。接続コードに次の行を追加します:
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
または、このパラメータを接続オプションとして含めることもできます。このようにして、データベース エラーは PDO 例外に変換され、通常の PHP エラーと同じように動作します。
$sql = $dbh->prepare('INSERT INTO users(full_name, e_mail, username, password) VALUES (?, ?, ?, ?)'); $result = $sql->execute(array($_GET['fullname'], $_GET['email'], $_GET['username'], $password_hash));疑問符を含む SQL クエリ。次に、準備されたステートメントを使用してクエリを実行します。準備されたステートメントは構文エラーを防ぎ、入力データが適切に処理されることを保証します。
説明
デバッグ手法は、最初の 2 つのカテゴリを識別するのに役立ちます。ただし、最も一般的な原因は実行エラーであり、PDO 例外を使用すると、エラーを簡単に理解できます。
エラー メッセージは問題を正確に示しているため、信頼してください。テーブルが存在しないと表示される場合は、スペルとデータベース接続を再確認してください。構文エラーが強調表示されている場合は、引用されたエラーの前の SQL ステートメントを調べてください。
以上がPDO ステートメントがサイレントに失敗するのはなぜですか?それをデバッグするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。