blog

日常・技術のことを記録する

SQLを実行するとき、数値はクォーテーションでエスケープされる?

SQLを実行するときの発行文字列ってどうなるの?(文字列がダブルクォーテーションで囲われることはわかったけど、数値はそのまま?それとも、シングルクォーテーションで囲われて発行される?)という疑問のメモ。

DBドライバによるっぽい。
ドライバがJDBCの場合はされないっぽい。
というか、数値はだいたいどのドライバもそのまま(エスケープなし)っぽい。

参考にしたサイト
PreparedStatement (Java Platform SE 6)
[第44回] SQLインジェクション、その3。動的SQL文の利用とサニタイズ(エスケープ) | クラウド・セキュリティナビ
続:SQLのバインド機構は「エスケープ処理された値」をはめ込むのか - ockeghem's blog
prepareStatementの使用 - データベース接続 - サーブレット入門
数値リテラルをシングルクォートで囲むことの是非 - ockeghem's blog
JDBCでPreparedStatementを利用する際、実際に発行するクエリ文字列を取得する方法 - Qiita



メモφ(・