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 :

Quel meilleur codage [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de alain78
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 160
    Par défaut Quel meilleur codage
    Bonjour,

    Je ne sais pas si je poste dans le bon forum.

    Voici ma question.

    Je code en PHP des requêtes sur des tables MySql.

    Des 2 requêtes ci dessous (identiques) quel est le meilleur codage: avec les quotes et les apostrophes ou bien sans ? Car mettre les quotes et les apostrophes prend du temps.


    Requête 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql="SELECT `champ` FROM `table` WHERE `champ`='$variable' ";

    Requête 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql="SELECT champ FROM table WHERE champ=$variable ";

    Merci à vous.


  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Bonjour,
    Citation Envoyé par alain78 Voir le message
    Je ne sais pas si je poste dans le bon forum.
    Déplacé

    Citation Envoyé par alain78 Voir le message
    Des 2 requêtes ci dessous (identiques) quel est le meilleur codage: avec les quotes et les apostrophes ou bien sans ? Car mettre les quotes et les apostrophes prend du temps.
    il ne faut pas placer la valeur directement dans la requête, sinon gare aux injections SQL.

    il faut utiliser la fonction mysql_real_escape_string

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    la 2eme requête risque de ne pas être bonne en plus

    Car mettre les quotes et les apostrophes prend du temps.
    ca c'est une excuse vraiment pourris

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Des 2 requêtes ci dessous (identiques) quel est le meilleur codage: avec les quotes et les apostrophes ou bien sans ?
    Il n'y a pas de meilleur codage à sens car c'est un tout petit peu plus nuancé que ça.

    Ca dépend avant tout du type de donnée, car si c'est une chaine de caractère, une date, etc ... les quotes sont obligatoires, donc il faudra les mettre sinon ça débouchera à une erreur de syntaxe.
    De plus, comme le précise Beekeep, il faut un minimum de sécurité, il faut échapper certains caractères, donc rajouter aussi un mysql_real_escape_string.
    Ou alors on utilise PDO et les requête préparée.
    Un excellent petit article tout frais : Comprendre PDO


    Si c'est un type INT, un nombre, théoriquement il ne faut pas de quote, par contre, pour le coté sécurité il faut aussi "typer" la donnée, comme (int)$variable ou intval($variable) par exemple.


    Bref ... ce n'est ni une question de temps, ni de mieux pas mieux.

  5. #5
    Membre confirmé Avatar de alain78
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 160
    Par défaut Mysql_real_escape_string
    Merci à vous,

    Bien sûr j'ai omis de préciser que touts mes variables sont le résultat de la fonction mysql_real_escape string.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $variable=mysql_real_escape string($variable);
    Puis après seulement j'intègre ma variable dans la requête.

    De toute façon la valeur d'une variable (de type string) qui n'est pas 'passée' via cette fonction ne peut pas être écrite dans la table MySql. J'ai constaté cela chez mon hébergeur (Infomaniak). C'est très bien !

    Je vais donc continuer à mettre les quotes (`) et les apostrophes (').

    MErci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 21/01/2011, 15h39
  2. Réponses: 0
    Dernier message: 23/03/2010, 17h03
  3. [Newbi] Meilleur codage
    Par bugmenot dans le forum C++
    Réponses: 7
    Dernier message: 26/01/2007, 15h00
  4. Connaitre a priori le meilleur codage entropique
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 14/09/2006, 11h36
  5. [C#]Quel meilleur choix pour présentation/logique/données?
    Par pmartin8 dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 22/03/2006, 21h35

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