[PHP]Insertion d'une image dans SQL Serveur

Insertion d'une image dans SQL Serveur [PHP] - PHP - Programmation

Marsh Posté le 24-07-2009 à 09:18:52    

Bonjour
 
Je cherche à insérer des images dans une BDD (SQL Serveur 2005)
 
Voici la partie de mon code qui pose problème:
 

Code :
  1. $img = file_get_contents ($_FILES['fic']['tmp_name']);
  2. $commande = "INSERT INTO image  VALUES ('".$img_nom."', '".$img_taille."','".$img_type."','','".addslashes($img)."') ";
  3. $resultat=odbc_exec($conn,$commande);


 
et voici la réponse:
 

Code :
  1. Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver]Erreur de syntaxe ou violation d'accès, SQL state 37000 in SQLExecDirect in D:\exploitation_front\transfert.php on line 36


 
Bref je ne comprends pas pourquoi je ne peux pas l'insérer. Je ne vois pas d'ou viens le problème
Pour info j'ai mis comme type nvarchar(MAX) dans ma BDD.
 
Par ailleurs si je passe par un $data = unpack("H*hex", $img);    
là j'arrive à insérer mon image en héxadécimal.
 
Mais le problème c'est que je veux stocker sans la transformation pour pouvoir faire un  file_put_contents ensuite.
 
Voila merci d'avance!

Reply

Marsh Posté le 24-07-2009 à 09:18:52   

Reply

Marsh Posté le 24-07-2009 à 11:42:01    

Pour commencer, je pense que le type nvarchar n'est pas du tout adapté au stockage de données binaires, une image dans ton cas.
 
Je ne sais pas si c'est la raison de l'erreur, mais je commencerais par remplacer ton type de champ par varbinary.


---------------
Mon Feedback !
Reply

Marsh Posté le 24-07-2009 à 11:45:00    

net, ou sinon en base64 mais bon...

Reply

Marsh Posté le 24-07-2009 à 11:48:38    

De plus, pour pouvoir ensuite rendre ton image, je pense qu'il va te falloir quelques informations en plus à stocker.
Je pense que la taille serait importante, mais le type MIME encore plus, afin de le mettre dans les headers de ta réponse.


---------------
Mon Feedback !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed