フルスタックエンジニアのノウハウ
2021.04.22    2021.06.30

execute(配列)bindValueどっちがいいの?

execute(配列)bindValueどっちがいいの?

この記事の動画版はこちら

チャンネル登録お願いします!


今回は、講座の受講生さんから頂いたご質問を紹介します。


同じような疑問をお持ちの方は、ぜひ参考にしてみてください。



質問内容


PDOを使ってデータベースに接続する際の書き方ですが、色々なパターンがあり混乱しています。

例えば、このようなSELECT文を実行する場合、

3行目の部分

これは、このように書いてはダメなのでしょうか?


このようなご質問でした。



回答内容


これに対して、僕がお答えした内容はこんな感じです。


bindValueを使った書き方でも問題ありません。

プレースホルダに対して、実際の値を設定(バインド)する方法は2通りあり、

1つは「executeの引数として配列を渡す方法」


もう1つは「bindValueで1つずつ設定する方法」です。



プレースホルダの数が多い場合
は、前者の方法だと1行が長くなってしまい見づらくなるのとbindValueの場合は、設定するデータの「」も指定することができるため、基本的には後者(bindValue)の方法を使用する形が良いかと思います。


ということで、


 結論

bindValueを使おう!


ということでした。


同じような疑問をお持ちの方は、ぜひ参考にしてみてくださいね。


なお、PHPからデータベースを操作する基本的な手順や、プレースホルダとは何か?ということについては別の記事で説明しているので、そちらもぜひ学習してみてください。


関連記事

PHPからデータベースを操作する手順


関連記事

プレースホルダとは何か?SQLインジェクション攻撃を回避せよ!


おすすめ記事