IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

file_get_contents


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut file_get_contents
    Salut pour tous,

    J'utilise une fonction PHP pour convertir un fichier image et le placer dans un champs binaire type PHOTO de SQLServer (l'équivalent BLOB dans MySQL).
    Cette fonction est utilisée comme suit:
    $img_binaire = file_get_contents ($_FILES['fichier']['tmp_name'])); //l'image en binaire
    Lors de l'ajout de champs, il ya erreur, j'ai échappé les slaches comme suit:
    $img_binaire = addslashes(file_get_contents ($_FILES['fichier']['tmp_name'])); //l'image en binaire
    Mais le problème persiste.
    Avez vous une idée pour s'en sortir?
    Merci

  2. #2
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    hello,

    et quel est le message d'erreur ?

    Sinon, quelques remarques :
    1) utilises tu is_uploaded_file() avant pour t'assurer de la validité du fichier ?
    2) le stockage d'une image en base de données est rarement une bonne idée
    3) addslashes() ne protège pas tous les caractères qui pourraient en avoir besoin...
    3) pour SQLServer, pour "échapper" les quotes, il faut les doubler non ? Dans ce cas addslashes() ne te sera vraiment d'aucune utilité.
    4) y a pas moyen d'utiliser une requete paramêtrée plutot ? ça t'évitera les caffouillages avec addslashes(), et contournera surement quelques limitations au niveau de la taille de la requete.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci de votre intervention,
    - Bien sûr j'ai utilisé is_uploaded_file() pour s'assurer du téléchargement.
    - Je sais que stocker une image dans une base de données n'est pas une bonne idée, et qu'il faut à la place mettre plutôt le chemin. Mais ceci m'est imposé par mon client.
    - addslashes() s'utilise dans ce même cas avec MySQL pour échapper les slaches, je ne sais pas s'il ya des particularités avec SQLServer.
    - Oui sur SQLServer, on doit doubler les quotes, mais pour des données binaires, comment faire, il n'ya pas une fonction pur le faire à ma connaissance.
    - requete paramêtrée: avez vous par exemple des idées dans ce sens.

    Je vous remercie beaucoup

  4. #4
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    Donc,
    - addslashes() s'utilise dans ce même cas avec MySQL pour échapper les slaches, je ne sais pas s'il ya des particularités avec SQLServer.
    bah justement, on se tue à répéter que pour MySQL il faut utiliser mysql_real_escape_string() qui prend en charge tous les caractères pouvant éventuellement poser problème... ce qui n'est pas du tout le cas de addslashes().

    - Oui sur SQLServer, on doit doubler les quotes, mais pour des données binaires, comment faire, il n'ya pas une fonction pur le faire à ma connaissance.
    Cela confirme donc. Si l'API d'SQLServer ne fourni pas de fonction le faisant, il va falloir le faire "soit même", avec str_replace() par exemple.
    Eventuellement, on peut regarder le code de ADOdb pour voir comment ils procèdent... Une autre solution serait d'utiliser carrément une cache d'abstraction, comme PDO qui est disponible à partir de PHP 5.


    - requete paramêtrée: avez vous par exemple des idées dans ce sens.
    A priori ce serait en utilisant des fonctions comme mssql_bind(), mais visiblement ce n'est utilisable via l'API de PHP que pour les procédures stockées... à voir si tu peux utiliser ça.

Discussions similaires

  1. [GD] Redimensionner img file_get_contents
    Par ToxiZz dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 25/03/2006, 13h51
  2. [Configuration] Echec de file_get_contents() suivant le moteur/OS ?
    Par Jay.L dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 24/03/2006, 16h47
  3. concernant la commande file_get_contents()
    Par belvina2002 dans le forum Langage
    Réponses: 3
    Dernier message: 20/03/2006, 10h43
  4. [Système] file_get_contents sur multimania
    Par caribou_belle dans le forum Langage
    Réponses: 13
    Dernier message: 22/02/2006, 16h42
  5. undefined function: file_get_contents()
    Par camyo dans le forum Langage
    Réponses: 2
    Dernier message: 30/11/2004, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo