| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
SDO_DAS_Relational::executePreparedQuery(^) SDO_DAS_Relational::executePreparedQuery — プリペアドステートメントとして渡された SQL クエリにプレースホルダ置換用の値を指定して実行し、 結果を正規化されたデータグラフ形式で返す 説明
SDODataObject
SDO_DAS_Relational::executePreparedQuery
(
PDO
$database_handle
,
PDOStatement
$prepared_statement
,
array
$value_list
[,
array
$column_specifier
] )警告
この関数は、 実験的 なものです。この関数の動作・ 名前・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 この関数は自己責任で使用してください。 クエリをリレーショナルデータベースに対して実行します。 実行には、渡された PDO データベースハンドルを使用します。 シンプルな executeQuery() と違う点は、 こちらはプリペアドステートメントと値のリストを受け取るというところです。 これを使用するほうがよい場面としては、次のふたつが考えられます。 まず、同じ文が引数だけを変えて何度も実行される場合。このような場合は、 最初に一度だけ文を準備しておくことでパフォーマンスを向上することができます。 もうひとつは、SQL 文にさまざまな値が指定される可能性があり、 それらの値が完全には信頼できないといった場合です。 後者の場合、それらの値を単純に連結して SQL を作成するのは危険です。 というのは、値の中に SQL で特別な意味を持つ文字が含まれているかもしれないからです。 このような、いわゆる SQL インジェクション攻撃から身を守るには、 プレースホルダ (あるいはパラメータマーカとも言い、'?' で表されます) を使用した SQL 文を準備しておくほうが安全です。 実際に使用する値のリストは、別の引数として指定します。 それ以外の点では、この関数は executeQuery() と同じです。つまり、 メタデータから作成されたモデルを使用し、結果セットを取得します。 そして結果をデータグラフとして返します。 パラメータ
返り値データグラフを返します。具体的には、特別な型のルートオブジェクトを返します。 このルートオブジェクトの下に、結果セットからのデータが格納されています。 ルートオブジェクトは複数の値を持つプロパティを持っており、 そのプロパティは、コンストラクタで指定した アプリケーションのルート型と同じ名前になります。 また、そのプロパティの内容は、 アプリケーションのルート型のオブジェクトとなります。 クエリがデータを返さなかった場合にも特別なルート型のオブジェクトが返されますが、 その中にあるアプリケーションルート型のプロパティの内容は空となります。 エラー / 例外SDO_DAS_Relational::executePreparedQuery() は、データグラフを正常に作成できなかった場合に SDO_DAS_Relational_Exception をスローします。 これが起こる原因は、いろいろ考えられます。例えば、 すべてのオブジェクトの結果セットで主キーがなかった場合などです。 また、何らかの PDO 例外が発生した場合には、 それをキャッチして PDO の診断情報を SDO_DAS_Relational_Exception に格納し、それをスローします。 例
例1 executePreparedQuery() によるデータオブジェクトの取得 この例では、データベースからひとつのデータオブジェクトを取得します - あるいは、もし 'Acme' という名前の会社が複数あるのなら結果は複数かもしれません。 返されたそれぞれの会社について、プロパティ name および id の内容を表示します。 executePreparedQuery() の使用法についてのその他の例は、 sdo/DAS/Relational/Scenarios にあるサンプルコードを参照ください。
<?php |
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「SDO_DAS_Relational::executePreparedQuery - プリペアドステートメントとして渡された SQL クエリにプレースホルダ置換用の値を指定して実行し、 結果を正規化されたデータグラフ形式で返す」をGoogle検索
|