[RESOLU] Problème de Syntaxe SQL avec PHP.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème de Syntaxe SQL avec PHP.

Re: Problème de Syntaxe SQL avec PHP.

par Spols » 01 nov. 2022, 16:47

' et ` n'est pas la même chose

Re: Problème de Syntaxe SQL avec PHP.

par ali13 » 01 nov. 2022, 15:11

Merci @or1.
J'ai suivi le lien et celui vers Mysql la doc.
mais j' avoue, je ne vois pas. Même dans la doc.
OK il y a des mots réservé mais la syntaxe semble correcte. J'ai regardé user USER, users USERS.
Mais c'est le nom de la table donc 'user' . SELECT et FROM.

Non vraiment là je ne comprend pas.

C'est bon! j'ai compris. les petits accent grave c'est pas des apostrophes. la touche 7 du clavier pas la 4.
Merci à toi. et bonne journée

Re: Problème de Syntaxe SQL avec PHP.

par or 1 » 01 nov. 2022, 13:56

La ligne 45 sa corespond à ça :
$sql = "SELECT * FROM 'user'";

Et vraiment je ne comprend pas pourquoi je reproduit scrupuleusement le tuto lettre par lettre.
il faut aussi respecter scrupuleusement les autres caractères, voir
https://www.ionos.fr/assistance/heberge ... -mysql-57/

Problème de Syntaxe SQL avec PHP.

par ali13 » 01 nov. 2022, 13:26

Bonjour,
Je suis complètement débutant dans ce domaine du développement avec php.

La j'essaie de discuter avec ma base de donnée, la connexion c'est OK, mais dès que je veux lui demander de me donner la liste des user j'obtiens un message d'erreur sur la syntaxe.
    <?php
    // PDO = php data objet, DSN = data source name

    // Constatnte d'environnement
    define("DBHOST", "localhost");
    define("DBUSER", "root");
    define("DBPASS", "root");
    define("DBNAME", "php-formation");

    // DSN de connexion
    //$dsn = "mysql:dbname=php-formation;host=localhost";
    $dsn = "mysql:dbname=" . DBNAME . "; host=" . DBHOST;

    //connexion à la base avec Try Catch:
    try {
        //instancie PDO
        $db = new PDO($dsn, DBUSER, DBPASS);
        echo "On est connectés !";

        // on s'assure d'envoyé les donnée en UTF8
        $db->exec("SET NAMES utf8");
    } catch (PDOException $e) {
        die($e->getMessage());
    }
    // Ici ont est connectés a la base
    // on recupère la liste des utilisateurs

    $sql = "SELECT * FROM 'user'";
    // on execute directement la requête
    $requete = $db->QUERY($sql);
    var_dump($requete);
    ?>
Le souci c'est que j'obtiens ça !

- On est connectés !

- Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 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 ''user'' at line 1 in C:\laragon\www\formation\bddconnect.php:45 Stack trace: #0 C:\laragon\www\formation\bddconnect.php(45): PDO->query('SELECT * FROM '...') #1 {main} thrown in C:\laragon\www\formation\bddconnect.php on line 45


La ligne 45 sa corespond à ça :
$sql = "SELECT * FROM 'user'";

Et vraiment je ne comprend pas pourquoi je reproduit scrupuleusement le tuto lettre par lettre.
Je suis sous windows 10, J'utilise Laragon 6, avec php 8.1.10, et mysql 8.0.30.

Si une personne pouvais me mettre sur une piste vers la solution. J'en serais ravis, car je pourrais continuer ma progression.

Merci A+