[PHP] Problème d'insertion dans SQL Serveur

Fermé
Joelatack Messages postés 8 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 4 octobre 2013 - 24 juil. 2009 à 09:25
Joelatack Messages postés 8 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 4 octobre 2013 - 24 juil. 2009 à 10:15
Bonjour

Je cherche à insérer des images dans une BDD (SQL Serveur 2005)

Voici la partie de mon code qui pose problème:


$img = file_get_contents ($_FILES['fic']['tmp_name']);

$commande = "INSERT INTO image VALUES ('".$img_nom."', '".$img_taille."','".$img_type."','','".addslashes($img)."') ";

$resultat=odbc_exec($conn,$commande);



et voici la réponse:

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!
A voir également:

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 juil. 2009 à 10:04
ce n'est pas logique de stocker une image dans une BDD, il vaut mieux l'enregistrer dans un dossier sur le serveur ( tu l'as déjà téléchargé, puisque tu as $_FILE.....)

et d'enregistrer dans la BDD le chemin et le nom du fichier contenant l'image

de plus addslashes sur un fichier image ??
0
Joelatack Messages postés 8 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 4 octobre 2013
24 juil. 2009 à 10:15
Pour info, Je suis en stage et ce travail resulte d'un projet que l'on m'a donné...

Sans rentrer dans les détails, l'interet de stocker les images dans la BDD (pour le moment je fais des essais avec des images en local mais par la suite ce ne sera pas le cas), est que nous n'avons pas les images au début, ce sont les commerciaux de l'entreprises qui pourront à distance stocker et visualiser les images dans la base de donnée....


Quand aux addslashes, il interviens du fait que mon image est stocké sous forme binaire, il permet alors d'echapper tous les caractères qui doivent l'être de la chaîne, pour être utilisée dans une requête de base de données.
0