Autor Zpráva
UrbiCZ
Profil
Čau. Nedaří se mi nahrát obrázek do DB. Vždy to napíše chybu: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '7ðâ£Ã4Dd5uVñ„´EeFãÄ' at line 1

Zde kód:
<?php
     if(isset($_POST["submit"])){
       $spojeni = mysql_connect("localhost", "root", "xxx");
     if(!$spojeni){
      die("What?");
     }
     
     $spojeni = mysql_select_db("databaseimage");
     if(!$spojeni){
      die("What?");
     }
     
     $file = $_FILES["image"]["tmp_name"];
     
      $image = file_get_contents($_FILES["image"]["tmp_name"]);
      $image_name = $_FILES["image"]["name"];
      $image_size = getimagesize($_FILES["image"]["tmp_name"]);
      
      if($image_size == false){
        echo "That is not an image";
      }else {
        if(!$insert = mysql_query("INSERT INTO store(name, image) VALUES('$image_name', '$image')")){
          die("Chyba" . mysql_error());
        }
      }
      
     } 
   ?>
LukasK
Profil
Pokud to dobře chápu, pak je problém se znakem ´ v řetězci, který se snažíš uložit do db.
Rfilip
Profil
Jaká je struktura tabulky store?
whoami
Profil
Chtělo by to obrázek alespoň ošetřit nebo jako base64 a název také ošetřit.. Pak by neměl být problém. Pokud se tedy do 'image' sloupce data vlezou..
UrbiCZ
Profil
Tady je ta struktura:


Jak to myslíš ošetřit?
panther
Profil
UrbiCZ:
nikde neescapuješ ten vstup: mysql_real_escape_string

whoami:
proč proboha base64, když existují databázové funkce na to určené?

On tam je file_get_contents, který jsem přehlédl.

UrbiCZ:
ukládej jen název obrázku, nebo cestu k němu. Obrázek jako takový v DB nepotřebuješ.
Rfilip
Profil
Datový typ sloupce tabulky máš správný, nevím v čem dalším by mohl být problém.
A mimochodem není lepší v db ukládat cestu k obrázku v souborovým systému?
whoami
Profil
panther, Rfilip:
Někdy je cíl uložit obrázek do db.. má to i své výhody.. Samozdřejmě člověk musí věďět proč to dělá.. ne jen tak protože je to cool..

panther:
Navrhoval jsem base64 kvůli tomu že obrázek je v tomto formátu v době "html5" dobře použitelný.. A je to jeden ze standardů jak ho uložit..
UrbiCZ
Profil
Tak jsem se rozhodl pro upload pouze názvu obrázku. Samotné obrázky budu nahrávat do složky images pomocí move_uploaded_file().

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: