2016-09-21 14 views
-2

MySQLデータベースに画像ファイルをアップロードする予定です。誰かが私にこの権利を手伝ってもらえますか?たくさんの方法を試しましたが、まだ画像をアップロードすることはできません。私は以下のコードをしようとしてきたが、それは常にこのようなエラーを取得します。MySQLデータベースに画像をアップロード中にエラーが発生しました

Error: INSERT INTO uploaded_images VALUES ('', asdasdasd , C:\xampp\tmp\phpE7CE.tmp) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':\xampp\tmp\phpE7CE.tmp)' at line 1

<!DOCTYPE html> 
<html> 
<body> 


<?php 
include("database/db_conection.php"); 

if ($_POST) { 

    $imagename = $_POST['imagename']; 
    $imagedata = mysqli_real_escape_string($conn ,$_FILES['image']['tmp_name']); 
    $imagetype = $_FILES['image']['type']; 


    if(substr($imagetype,0,5) == "image") { 

     $sql = "INSERT INTO uploaded_images VALUES ('', $imagename , $imagedata)"; 


     if (mysqli_query($conn, $sql)) { 
      echo "New record created successfully"; 
     } else { 
      echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
     } 

     mysqli_close($conn); 
    } 
} 
?> 

<form action="upload.php" method="POST" enctype="multipart/form-data"> 
Name: <input type="text" name="imagename"> <br>Select image to upload: 
<input type="file" name="image" id="fileToUpload"> 
<input type="submit" value="Upload Image" name="submit"> 
</form> 



</body> 
</html> 
+0

このコードが機能したとしても、ストアまたは検索時にファイルが破損します。データベースに保存する前にファイルを 'base64encode()'する必要があります。また、ファイルシステムにファイルを保存し、ファイルのパスをデータベースに保存することをお勧めします。 – RiggsFolly

+0

申し訳ありません私は教授が自分のシステムで写真をアップロードして表示できるようにすることを学び始めたばかりです。私の計画は、私のデータベースに画像を格納することですので、それはblobになるでしょう、病気だけでデータベースから取得します。増分IDを使用してその画像を表示したいときです。これは私の考えです – Jomai

答えて

1

私は、あなたが本当にしたいことは代わりに実際のフォルダのDB内の画像を保存することであるかどうかわからないんだけどあなたのプロジェクトでは、とにかく、挿入クエリは次のように書式設定する必要があります:

$sql = "INSERT INTO uploaded_images (image_name, image_data) VALUES ('$imagename' , '$imagedata')"; // assuming an autoincrement here 

クエリが失敗している必要があります。 PHPエラーログを確認してください。

関連する問題