PHP を使用してデータベースに画像を保存する方法
問題の説明
保存しようとしたときPHP コードを使用して MySQL データベース内の画像を HTML フォームからアップロードすると、コードは次の理由により画像データの挿入に失敗します。 SQL 構文エラー。
コードの分析
提供されたコードは、いくつかの問題によりデータベースに画像データを挿入できません:
解決策
これらの問題を解決し、画像をMySQL データベースの場合は、次の手順を検討してください:
PDO を使用したコード例
PHP コード:
<?php try { // Connect to the database using PDO $dsn = 'mysql:host=localhost;dbname=database_name'; $username = 'username'; $password = 'password'; $conn = new PDO($dsn, $username, $password); // Check if the image column is BLOB type $query = "DESCRIBE table_name"; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); if ($result[0]['Type'] != 'blob') { throw new Exception('The image column is not of BLOB type'); } // Process the image upload $file = $_FILES['image']['tmp_name']; $image_name = $_FILES['image']['name']; $image = file_get_contents($file); // Prepare the INSERT statement $query = "INSERT INTO product_images (id, image_name, image) VALUES (1, ?, ?)"; $stmt = $conn->prepare($query); // Execute the statement and bind parameters $stmt->execute([$image_name, $image]); // Success message echo "Image uploaded successfully"; } catch (Exception $e) { echo "Failed to upload image: " . $e->getMessage(); } ?>
HTMLフォーム
<form action="insert_product.php" method="POST" enctype="multipart/form-data"> <label for="image">File:</label> <input type="file" name="image">
考慮事項
以上がPHP を使用してイメージを MySQL データベースに保存する際の SQL 構文エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。