Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】PDOStatement::queryStringプロパティの使い方

queryStringプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

queryStringプロパティは、PDOStatementオブジェクトに関連付けられたSQLクエリ文字列を保持するプロパティです。

PHPにおけるPDO(PHP Data Objects)は、様々なデータベースに統一的な方法でアクセスするための拡張機能です。PDOStatementクラスは、このPDOを使用してデータベースに発行される、特に準備されたステートメント(プリペアドステートメント)を表します。

queryStringプロパティには、PDO::prepare()メソッドに渡された元のSQLクエリ文字列がそのまま格納されます。これは、SQLインジェクション攻撃を防ぐために使用されるプレースホルダー(例えば:name?)を含む状態のクエリ文字列です。このプロパティは主に、アプリケーションのデバッグ時やログ記録のために、実行される予定のSQLクエリの内容を確認したい場合に利用されます。

重要な点として、queryStringプロパティが保持するのは、プレースホルダーが値にバインドされる前の、PDO::prepare()に渡された元のSQL文字列であることに注意が必要です。実際にデータベースに送信される、プレースホルダーが値に置き換えられた後の最終的なSQLクエリ文字列ではありません。また、このプロパティは読み取り専用であり、その内容を直接変更することはできません。SQLクエリの構造確認を目的として使用されるプロパティです。

構文(syntax)

1<?php
2$pdo = new PDO('sqlite::memory:');
3$stmt = $pdo->prepare('SELECT name, email FROM users WHERE id = :id');
4echo $stmt->queryString;
5?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません