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

Petit nouveau ! | 2 Messages

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+

Mammouth du PHP | 2703 Messages

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/

Petit nouveau ! | 2 Messages

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
Modifié en dernier par ali13 le 01 nov. 2022, 16:56, modifié 1 fois.

Mammouth du PHP | 1967 Messages

01 nov. 2022, 16:47

' et ` n'est pas la même chose
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube