投稿した例は意味がありません-pg_prepare()
およびpg_query_params()
は、通常は組み合わせて使用しない、さまざまな目的を持つ独立した関数です。
pg_prepare()
pg_execute()
を介して後で実行するためのステートメント(クエリ)を準備します 。これは潜在的な最適化として行われます-ステートメントを連続して何度も実行する必要があることが事前にわかっている場合は、事前に準備することで、(再)準備する必要がないため、データベースサーバーでの作業を節約できます。各呼び出しのステートメント。
pg_query_params()
(およびその「より単純な」バージョンpg_query()
)ステートメント(クエリ)を直接実行するだけで、関数が呼び出されるたびにデータベースサーバーにステートメントを(再)準備するように強制します。
つまり、これは
$result = pg_query_params($query, $params);
これとまったく同じ結果が得られます
$statement = pg_prepare($query);
$result = pg_execute($statement, $params);
唯一の違いは、2番目のケースでは、プリペアドステートメントがまだあり、pg_execute()
をさらに呼び出すために再利用する準備ができていることです。 -そのため、名前を付けることができます。そうすることで、同じ接続でさまざまなプリペアドステートメントを作成し、何度でも任意の順序で実行できるようになります。