• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:queryとparam)

queryとparamについての説明

このQ&Aのポイント
  • queryとparamについての説明
  • execute_query関数はPDO、SQL文、$paramを利用してプリペアドステートメントを実行する
  • execute_query関数は更新に失敗した場合にエラーメッセージを表示する

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

> executeメソッドを引数なしで使う場合と、引数として配列を入れる場合の違いは何ですか? prepareで渡したSQL文の一部がメタ文字になっていて値を別途与える必要がある場合はexecuteでパラメータを渡します。 prepareで渡したSQL文が値を別途与える必要が無ければexecuteは引数無しになります。 例えば "SELECT * FROM hoge WHERE ID=?" と言うSQL文なら、検索条件のIDの値は後からパラメータで渡す前提のSQL文ですからexecuteでパラメータを渡す必要があります。 しかし "SELECT * FROM hoge WHERE ID=1" と言うSQL文なら、検索条件のIDの値は決め打ちで入っているのでexecuteは引数無しになります。

OBAKEI
質問者

お礼

解決しました。回答ありがとうございます。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

execute_query() はDB接続インスタンス($db)とSQL文($sql)、SQL文の中に代入する値($params)を受け取り、SQL文を実行して成功したら実行結果のインスタンスを返し、失敗したらset_error()関数を実行しFALSEを返しています。 prepare関数を使ってSQL文を実行するようになっているので、SQL文内のメタ文字を実際の値に変換して実行するために$paramsで値を指定しています。

OBAKEI
質問者

補足

回答ありがとうございます。executeメソッドを引数なしで使う場合と、引数として配列を入れる場合の違いは何ですか?

関連するQ&A