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

  • Votes
  • Date
  • Date décroissante
  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.
    1. mais un truc que j'ai pas compris pourquoi faisais tu Nom='".$nom."' ?
      1. $reqchaine="SELECT * FROM users WHERE Nom='$nom' AND MotDePass='$motdepasse'";
        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.