日々精進

新しく学んだことを書き留めていきます

SQLのPreparedStatementをログに出す

SQLは以下のような形で作っておき、これと?に埋めるデータをDBライブラリのメソッドに渡すことが多い。

SELECT ... FROM ... WHERE id = ?

この値を?に埋めた後の文字列はDB側でも存在しないらしいので、埋めた後の文字列をログに出すことは出来ない。 なので、選択肢としては?を含む文字列と値を別々にログに出すか、時前で値をエスケープして?に値を埋める処理を書くかのどちらかになる。

参考: stackoverflow.com