まず、画像列がBLOBタイプであるかどうかを確認する必要があります !
あなたのSQLテーブルについては何も知りませんが、例として自分で作成しようとすると。
フィールドid
を取得しました (int)、 image
(blob)および image_name
(varchar(64))。
したがって、コードは次のようになります(IDが常に「1」であると想定し、このmysql_queryを使用しましょう):
$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //SQL Injection defence!
$image_name = addslashes($_FILES['image']['name']);
$sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";
if (!mysql_query($sql)) { // Error handling
echo "Something went wrong! :(";
}
あなたは多くの点でそれを間違っています。 mysql関数を使用しないでください-それらは非推奨です! PDO
を使用します または
また、HTMLフォームが標準から外れています。次のようになります:
<form action="insert_product.php" method="POST" enctype="multipart/form-data">
<label>File: </label><input type="file" name="image" />
<input type="submit" />
</form>
補足:
ファイルを処理してBLOBとして保存する場合は、 mysql_real_escape_string()
そうしないと、構文エラーが発生します。