[PHP-users 30660] プリペアドステートメントで execute する直前に実行される SQL 文そのものを知る方法?

haward99 @ yahoo.co.jp haward99 @ yahoo.co.jp
2006年 11月 2日 (木) 14:54:45 JST


渡辺です。

DB検索のためのプリペアドステートメントと、
負荷対策のためのキャッシュのからみでちょっとどうしよーかなーと思っております。

1行目: $id = 1001; // 会員番号のつもり
2行目: $stmt = $dbh->prepare("SELECT * FROM KAIIN WHERE ID = ?");
3行目: $stmt->bindParam(1, $id);
4行目: $stmt->execute();

とすることで、
SELECT * FROM KAIIN WHERE ID = 1001
というSQL文が実行されますが、
上で言う3行目と4行目の間、つまりexecuteを実行する前に、
発行されるSQL文そのものを知る方法ってないですかね?

DBの負荷対策のためにオリジナルのキャッシュ機構をいれてありまして、
SQL文そのもの(またはそのmd5値)をキャッシュ識別IDとして
使ってる部分があるので、executeしてSQLが実行されてしまう前に
そのSQL文を知りたいのです。




PHP-users メーリングリストの案内