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 :

syntaxe variable dans requête selon php.ini


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut syntaxe variable dans requête selon php.ini
    Bonsoir,

    Voici 2 requêtes dans un script PHP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $a=mysql_query("select * from table where champ=$valeur");
     
    $b=mysql_query("select * from table where champ='".$valeur."'");
    Je cherche à savoir pourquoi $a fonctionne avec ma configuration en local(wamp, PHP version 5.2.3) mais pas sur mon serveur ? $b fonctionne sur les deux.
    Quand je dis fonctionne, je veux dire que la requête ramènne quelque chose.
    Il y aurait un rapport avec le php.ini, si oui ou se trouve la paramètrage ?

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Que vaut le requete finale dans les deux cas ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut
    Elle vaut 0 car j'ai des opérations mathématiques à effectuer dont une division et php me renvoi une erreur : Warning: Division by zero ...
    J'en déduit que la requête ne ramène rien ou 0 car quand je remplace $valeur par un nombre le script fontionne.

  4. #4
    Membre éclairé Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Par défaut
    Je pense que c'est la version de php(5.3 p-ê?), moi aussi quand je me suis remis il y peu à php(1 mois de ça) sur une nouvelle machine j'ai installé les dernières versions. Et effectivement j'ai été étonné que 'where champs=$toto' marché sans concaténation.

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Un petit rappel sur les chaines de caractères : Apostrophes ou guillemets

    En fait la différence entre tes deux requêtes n'est pas dans la façon dont tu passes la variable, mais dans le fait que dans $a, la valeur n'est pas encadrée par des quotes alors qu'elle l'est dans $b. Si ton champ n'est pas de type INTEGER, $a ne devrait pas fonctionner.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut
    Citation Envoyé par Celira Voir le message
    Un petit rappel sur les chaines de caractères : Apostrophes ou guillemets

    En fait la différence entre tes deux requêtes n'est pas dans la façon dont tu passes la variable, mais dans le fait que dans $a, la valeur n'est pas encadrée par des quotes alors qu'elle l'est dans $b. Si ton champ n'est pas de type INTEGER, $a ne devrait pas fonctionner.
    Merci pour le lien

    INTEGER ou pas avec cette syntaxe on passe partout ? : '".$valeur?."'

    (Par contre c'est plus lent niveau process)

Discussions similaires

  1. Variable JS dans requête SQL PHP
    Par miabi dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/11/2010, 13h28
  2. Pb syntaxe : inclure variable dans requête HQL
    Par dassault73 dans le forum Hibernate
    Réponses: 1
    Dernier message: 11/04/2010, 22h12
  3. Variable dans Requête Vba Access
    Par dorschner dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 31/08/2006, 21h52
  4. [MySQL] Introduire une variable dans requête SQL, insérer des données à la volée
    Par Ronan.f dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 29/04/2006, 22h10
  5. Réponses: 11
    Dernier message: 11/03/2005, 17h41

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