【PHP】PDOでSQLを発行する2つの方法
PDOでクエリを実行する方法として以下の方法があります。
⑴ queryを使う
⑵ prepare後にexecuteする
具体的な使用例は以下の通り
query
$sql = 'select * from userTable'; $stmt = $dbh->query($sql);
prepare
$sql = 'select * from userTable where id = ?'; $stmt = $dbh->prepare($sql); $stmt->execute(array('A0001'));
prepareではプレースホルダーを利用することができ、最初にプレースホルダー付きのSQL文の解析を行います。その後、SQL文の解析をせずにパラメータだけ変えて何度も実行することができるようです。
複雑なSQL文は解析にコストがかかるため、複数回発行されるようなSQLではprepareを使うと効果的ということです。
また、prepareを使うとパラメータのエスケープを行ってくれます。
一方で、queryは一般的にパラメータを必要としないような単純なSQLを発行する際に利用するようですが、これはprepareを使ってもできるのでいまいちメリットがわかりません。。。