PDO・mySqlを使用していると気になったことがあります。
今までなんとなく、バインド変数を持たないクエリは
php
1$sql = 'SELECT * FROM SAMPLE WHERE COL_A = 1'; 2$pdo->query($sql);
バインド変数を持つクエリは
php
1$userInput = '1'; 2$sql = "SELECT * FROM SAMPLE WHERE COL_A = ?'; 3$stmt = pdo->prepare($sql); 4$stmt->execute(array($userInput));
と使い分けておりましたが、バインド変数を持たない前者のSQLを
PHP
1$sql = 'SELECT * FROM SAMPLE WHERE COL_A = 1'; 2$stmt = pdo->prepare($sql); 3$stmt->execute();
と実行したらデメリットはあるのでしょうか?
毎度使い分けるのが面倒なので、SQLとバインドする値の配列(省略可能)を渡して、バインドする値の配列の有無でexecuteに引数を渡すかどうかを判断し、executeを実行するメソッドを一つ作って、sqlの実行を一貫しようと考えているのですが、デメリットがあれば・・と思い、いまだに使い分けています。
詳しい方、ご意見を頂けましたら助かります。
宜しくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。