- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MDB2のプリぺアドステートメントについて)
MDB2のプリぺアドステートメントについて
このQ&Aのポイント
- MDB2のプリぺアドステートメントを使用してテーブルデータを取得する際に、型指定をしなくてもデータを取得することは可能ですか?
- 指定した場合と指定しなかった場合で、MDB2のプリぺアドステートメントの動作にはどのような違いがあるのでしょうか?
- MDB2の公式マニュアルでは型指定の方法しか記載されていないため、型指定をしない場合の動作については不明です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>公式マニュアルでは指定したものしか見当たらなかったもので… サンプルソースはそうかもしれませんが、マニュアル自体にちゃんと記述があります。 RTFM. http://pear.php.net/manual/ja/package.database.mdb2.intro-execute.php ----- 引用ここから デフォルトでは、すべてのプレースホルダは 文字列として扱われます。しかし、二番目のパラメータとして データ型 の配列を渡すと、 各プレースホルダの型を指定できるようになります。 ----- 引用ここまで 第二引数を省略した場合には、文字列型として扱われます。 PDOなどでもそうなっています(bindParamせずに直接executeで配列を渡すケース)。MySQLでは困ることはなかった気がしますが、いつまでも大丈夫だとかすべてのRDBMSで問題ないとか誰も保証出来ません。「キチンと書く」のが基本です。
お礼
ありがとうございます! 以下、どちらでも問題無く動作しました。。(MySQLです) $sth = $mdb2->prepare($sql, null, MDB2_PREPARE_RESULT); $sth = $mdb2->prepare($sql, array(), MDB2_PREPARE_RESULT); 本来推奨すべきでは無いのでしょうが、こういった記述もあり、という事ですね。