ホームページ > データベース > mysql チュートリアル > PHP を使用して画像を MySQL データベースに適切に挿入するにはどうすればよいですか?

PHP を使用して画像を MySQL データベースに適切に挿入するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-31 13:17:18
オリジナル
893 人が閲覧しました

How to Properly Insert Images into a MySQL Database Using PHP?

PHP を使用して MySQL データベースに画像を挿入する方法

問題:

に画像を保存しようとしていますMySQL データベースですが、プログラムがイメージを挿入していませんdata.

提供されたコードの抜粋:

    $file = $_FILES['image']['tmp_name'];
    ...
    if ($image_query = mysql_query ("insert into product_images values (1,'$image_name',$image )"))
    {
        ...
    }
ログイン後にコピー

エラー メッセージ:

SQL にエラーがあります構文;正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

解決策:

1.画像列が BLOB 型であることを確認します。
画像の保存に使用している列が BLOB データ型であることを確認します。

2.入力データのサニタイズ:
MySQLi 関数を使用して SQL クエリを処理し、入力データ内の特殊文字をエスケープして SQL インジェクションを防ぎます。

修正されたコード (ID が常に '1' であると仮定) ):

$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name = addslashes($_FILES['image']['name']);

$query = "INSERT INTO product_images (id, image, image_name) VALUES ('1', '{$image}', '{$image_name}')";

if (mysqli_query($conn, $query)) {
    ...
}
ログイン後にコピー

3. HTML フォームの更新:
ファイルのアップロードに正しい enctype 属性を使用するように HTML フォームを更新する必要があります:

<form action="insert_product.php" method="POST" enctype="multipart/form-data">
    <input type="file" name="image" />
    <input type="submit" />
</form>
ログイン後にコピー

4.ファイルをディスクに保存する (オプション):
大量のデータには MySQL データベースを使用する代わりに、イメージ ファイルをディスクに保存することを検討してください。これにより、パフォーマンスが向上し、データベースの負荷が軽減されます。

以上がPHP を使用して画像を MySQL データベースに適切に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート