メソッドで個別にバインドする必要があります。メソッドを実行した後に行います。メソッドは全てのデータを配列として返します。メソッドにも引数に定数を指定することで、結果セットから取り出したデータをどのような形式の変数に格納するか(取得形式)を指定することができます。パラメータ$fetch_style結果セットから取り出したデータをどのような形式の変数に格納するか(取得形式)を指定するものです。メソッドの定数以外に以下のようなものがあります。PDO::FETCH_COLUMN:結果セットから単一カラムの全ての値を含む配列を返す場合に指定します。パラメータにどのカラムを返すかを指定することができます。値によって意味が異なります。始まる番号のカラムを指定します。指定したとみなされます。結果セットに残っている全ての行を含む配列を返します。この配列は、カラム値の配列もしくは各カラム名に対応するプロパティを持つオブジェクトとして各行を表します。PDO::FETCH_BOTH)例です。指定し,第2パラメータにカラムの「番目」を渡します。指定したとみなされます。}出力結果1978-08-151920-03-22PDOStatement::fetchColumn結果セットから特定の1カラムのみを取得します。パラメータ$column_number先頭から数えてそのカラムが何番目にあるかを指定します。指定したとみなされます。結果セットの次行から単一カラムを返します。カラムを取得するときに使っていけません。区別できないからです。使用してデータを処理する場合、同一行から他のカラムを返す方法はありません。メソッドの使用例です。Sales(2つ目のカラム。0から始まるので1番目のカラム)の値を表示しています。180以下は同じテーブルで、ユーザーが入力した月のセールスの平均を表示する例です。平均(AVG)は最初のカラムになるので0番目になります。使用していない場合には、PDO::queryメソッドを使って、クエリーを直接実行するという方法を選択することができます。※但し、プリペアドステートメントを使わないので、自分でエスケープ処理をする必要があります。クラスのインスタンスがスクリプトに返されます。オブジェクトが存在する間、接続がアクティブであり続けます。オブジェクトを破棄します。明示的にこれを行わなかった場合は、スクリプトの終了時に自動的に接続が閉じられます。そのため、通常は接続を閉じる処理は不要です。ログの取得データベースを使ったプログラムをデバッグするのに、データベースのクエリログを参照すると役に立ちます。コマンドを実行します。サーバーの再起動なしに、クエリログがファイルに保存されるようになります。コマンドを実行します。フォーマット(LF)になっています。エディタで開くと改行も表示されます。クエリログを確認すれば、プリペアドステートメントで「静的プレースホルダ」と「動的プレースホルダ」のどちらが使われているのかも確認することができます。実行していれば、「静的プレースホルダ」になります。「動的プレースホルダ」の場合は、Queryだけ実行されています。プレースホルダによる組み立ては、バインドをいつ行うのかによって以下の2種類に分けることができます。文の構文解析などの準備をしておく方式です。実行の段階で、実際のパラメータの値をデータベースエンジン側に送信し、データベースエンジン側がバインド処理します。文の構文がバインド前に確定することから、プレースホルダに渡す文字列はクォートして記述する必要がありません。そのため、シングルクォートのエスケープ処理も必要ありません。数値リテラルもそのまま適切にバインドされます。このことから、セキュリティの観点で、静的プレースホルダは最も安全です。静的プレースホルダでは、SQLを準備する段階でSQL文の構文が確定し、後からSQL構文が変化することがないため、パラメータの値がリテラルの外にはみ出す現象が起きません。インジェクションの脆弱性が生じません。Statement)とは異なり、プレースホルダを利用するものの、パラメータのバインド処理をデータベースエンジン側で行うのではなく、アプリケーション側のライブラリ内で実行する方式です。動的プレースホルダは静的プレースホルダとは異なり、バインド処理を実現するライブラリによっては、SQL構文を変化させるようなSQLインジェクションを許してしまう、脆弱な実装のものが存在する可能性を否定できません。(備考)静的プレースホルダは「サーバーサイドプリペアドステートメント」、動的プレースホルダは「クライアントサイドプリペアドステートメント」と呼ばれることもあります。