質問

画像の保存に関するこのチュートリアルをDBに読みました。チュートリアルでは、著者は挿入する前にバイナリデータの特殊文字を逃れます。 http://www.phpriot.com/articles/images-in-mysql/7 (使用 addslashes でも mysql_real_escape_string 望ましい - しかし、それは別の問題です)。

ポイントは、表示するとき、彼は保存されているときにデータを表示するだけです。 http://www.phpriot.com/articles/images-in-mysql/8

私の質問:

1)バイナリフィールドタイプでも特殊文字を逃れる必要がありますか(blob)?

2)もしそうなら、画像を正しく表示するためにキャラクターを再度「無効」する必要はありませんか? (もしそうなら、それを行うための最良の方法は何ですか。効率性についてのコメントはありますか?大きな画像のための:脱出と脱出は大きなオーバーヘッドになる可能性がありますか?)

それとも、逃げることについての私の理解は完全に間違っているということです(そして、逃げることはクエリのみに影響し、挿入/保存された最終データには影響しませんか?)。

ありがとう

JP

役に立ちましたか?

解決

逃げることの理解は間違っています。データベースに挿入されているデータは逃げられているため、クエリパーサーは意図したとおりに情報を確認します。

弦「ジャンルック 'アールグレイ'ピカード」を取ります。逃げる結果: 'Jean-Luc \'Earl Grey\' Picard'

MySQLがこれを受け取ると、脱出された引用を文字通り取る必要があること、それが逃げることが意味するものであり、それらをデータベースに保存することを理解しています。データベースにエスケープキャラクターを保存しません。 は、MySQLに、文字通りそれに続くキャラクターを取る必要があることを示します。

取得すると、クエリを解析するときに削除されるため、データは逃げることなくアプリケーションに表示されます。

他のヒント

1)バイナリフィールドタイプ(BLOB)でも特殊文字を逃れる必要がありますか?

はい、なぜなら mysql_real_escape_string() (実際に使用するものです)SQLインジェクション攻撃に対する保護を提供します。 どれでも データベースにフィードする任意のデータは、最初に消毒する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top