ホームページ > バックエンド開発 > PHPチュートリアル > PHP を使用して画像を MySQL データベースに適切にアップロードするにはどうすればよいですか?

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

Susan Sarandon
リリース: 2024-12-09 16:49:14
オリジナル
772 人が閲覧しました

How to Properly Upload Images to a MySQL Database Using PHP?

PHP を使用した MySQL データベースへのイメージのアップロード

PHP を使用して MySQL データベースにイメージを挿入するには、いくつかの手順が必要です。提供したコードの問題に対処しましょう:

1.データベース テーブルの構造:

データベース テーブルに、画像データを格納するための BLOB または MEDIUMBLOB タイプとして定義された列があることを確認してください。

2.プリペアド ステートメント:

非推奨の mysql_query() 関数を使用する代わりに、PDO または MySQLi を使用するプリペアド ステートメントに切り替えます。準備されたステートメントは SQL インジェクションの脆弱性を防ぎます。

3.適切な画像処理:

現在のコードは、一時ファイルから画像データを直接取得します。これはセキュリティ上のリスクです。代わりに、file_get_contents() を FILE_BINARY オプションとともに使用して、バイナリ コンテンツが適切に処理されることを確認します。

4.サニタイズ:

SQL インジェクションを防ぐために、addslashes() または mysqli_real_escape_string() を使用して画像データをサニタイズします。

5.正しい挿入クエリ:

挿入クエリはテーブル構造と一致し、それに応じてデータをサニタイズする必要があります。修正版は次のとおりです:

1

2

3

4

5

6

7

8

9

$stmt = $mysqli->prepare("INSERT INTO product_images (id, image, image_name) VALUES (?, ?, ?)");

$stmt->bind_param("sis", 1, $image, $image_name);

$image = file_get_contents($_FILES['image']['tmp_name'], FILE_BINARY);

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

if ($stmt->execute()) {

    echo "Image uploaded successfully";

} else {

    echo "Error: " . $mysqli->error;

}

ログイン後にコピー

6. HTML フォーム:

HTML フォームでは、リクエストでバイナリ データを送信できるようにする enctype="multipart/form-data" 属性を使用する必要があります。さらに、

には適切な終了タグを使用してください。要素。

1

2

3

4

5

<form action="insert_product.php" method="POST" enctype="multipart/form-data">

    <label>File:</label>

    <input type="file" name="image">

    <input type="submit">

</form>

ログイン後にコピー

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

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