MySQL データベースにイメージを保存しようとすると、問題が発生します。このガイドでは、画像データを正常に保存するための解決策を説明します。
<br>$sql = "INSERTの中へImageStore(ImageId,Image)<br>VALUES('$this->image_id','file_get_contents($tmp_image)')";<br>
このコードPHP で文字列を構築しますが、関数呼び出し file_get_contents($tmp_image) は文字列の前に評価されません。が作成されます。その結果、実際のバイナリ データは挿入されません。
これを解決するには、明示的に連結する必要があります。関数の結果call:
<br>$sql = "INSERT INTO ImageStore(ImageId,Image)<br>VALUES('$this->image_id','" . file_get_contents ($tmp_image) 。 "')";<br>
さらに、バイナリ データ内の文字がすべてクエリを妨げる可能性がありますエスケープされました:
<br>$sql = "INSERT INTO ImageStore(ImageId,Image)<br>VALUES('$this->image_id','" . mysql_escape_string (file_get_contents($tmp_image)) 。 "')";<br>
大きなバイナリ データをデータベースに保存することは、通常推奨されません。パフォーマンスの問題やデータベースの肥大化につながる可能性があります。代わりに、別のファイル システムを使用して画像を保存することを検討してください。
以上がPHP を使用して MySQL に BLOB (画像) を適切に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。