SQLを実行するとき、数値はクォーテーションでエスケープされる?
SQLを実行するときの発行文字列ってどうなるの?(文字列がダブルクォーテーションで囲われることはわかったけど、数値はそのまま?それとも、シングルクォーテーションで囲われて発行される?)という疑問のメモ。
DBドライバによるっぽい。
ドライバがJDBCの場合はされないっぽい。
というか、数値はだいたいどのドライバもそのまま(エスケープなし)っぽい。
参考にしたサイト
PreparedStatement (Java Platform SE 6)
[第44回] SQLインジェクション、その3。動的SQL文の利用とサニタイズ(エスケープ) | クラウド・セキュリティナビ
続:SQLのバインド機構は「エスケープ処理された値」をはめ込むのか - ockeghem's blog
prepareStatementの使用 - データベース接続 - サーブレット入門
数値リテラルをシングルクォートで囲むことの是非 - ockeghem's blog
JDBCでPreparedStatementを利用する際、実際に発行するクエリ文字列を取得する方法 - Qiita
たぶんIntはそのまま送ると思うけどなぁ。
— なかつがわ (@someone7140) October 9, 2019
発行SQL確認するのが一番確実だが。https://t.co/47G5CnQuT7
メモφ(・・