問題:
に画像を保存しようとしています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 サイトの他の関連記事を参照してください。