Erreur de syntax

Bonjour,
J'utilise php 5.3.0 mysql 5.1.36.
J'ai le message suivant lors de l'execution du code:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND MotDePass='salah'' at line 1

Voici ma requette, mais jusq'a maintenent je n'arrive pas à detecter l'erreur, je crois de c'est un probleme de concatenation.

$reqchaine="SELECT * FROM users WHERE Nom='".$nom."';AND MotDePass='".$motdepasse."';";
Configuration: Windows XP
Firefox 3.5.2

6 réponses

  1. Bonjour,

    Ceci devrait fonctionner:
    $reqchaine="SELECT * FROM users WHERE Nom='".$nom."' AND MotDePass='".$motdepasse."' ";


    Le ";" c'est que pour les fins d'instructions SQL.
    1. $reqchaine="SELECT * FROM users WHERE Nom='$nom' AND MotDePass='$motdepasse'";
      1. mais un truc que j'ai pas compris pourquoi faisais tu Nom='".$nom."' ?
        1. Tout simplement parce que c'est plus rapide.
          Plus long à écrire certes, mais en temps d'exécution, la variable intégrée est plus longue.

          Citation:
          Cette fois nous affectons, en plus de la chaine, la variable $i qui correspond au compteur des 3 millions d'itérations.
          //1° cas
          $chaine='Ceci est une variable : '.$i;

          //2° cas
          $chaine="Ceci est une variable : ".$i;

          //3° cas
          $chaine="Ceci est une variable : $i";

          Durée en s
          1° cas 3.96654582024
          2° cas 3.97251200676
          3° cas 4.95615792274

          Source: https://m-fernandez.developpez.com/articles/php/bench/
          _________________________

          Voilà pourquoi je mets toujours mes variables en concaténation de la chaine et non à l'intérieur de la chaine.