Ajout table MySQL erreur

Résolu/Fermé
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 - Modifié le 12 mars 2021 à 22:28
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 - 17 mars 2021 à 15:14
Bonjour, j'essaie actuellement de rajouter une table avec MySQL sauf que j'ai une erreur côté PHP.

Voilà ma requête MySQL:
$bdd -> query("CREATE TABLE IF NOT EXISTS utilisateur(
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    email VARCHAR(50) UNIQUE,
    pseudo VARCHAR(50),
    password VARCHAR(300),
    role INTEGER,
    FOREIGN KEY (role) REFERENCES role(id)
    )");


Et l'erreur PHP:

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 MariaDB server version for the right syntax to use near ' email VARCHAR(50) UNIQUE, pseudo VARCHAR(50), password VARCHA...' at line 2 in C:\Users\...\web\formulairePHP\jouer.php:71 Stack trace: #0 C:\Users\...\web\formulairePHP\jouer.php(71): PDO->query('CREATE TABLE IF...') #1 {main} thrown in C:\Users\...\web\formulairePHP\jouer.php on line 71


(la ligne 71 fait référence à la première ligne de ma requête MySQL, donc
$bdd -> query("CREATE TABLE IF NOT EXISTS utilisateur(
)

J'ai bien vérifié la syntaxe, je ne vois pas où est l'erreur. J'ai juste pu constater que la création de la table marchait si je supprimais les lignes suivantes:
 id INTEGER PRIMARY KEY AUTOINCREMENT,
 role INTEGER,
FOREIGN KEY (role) REFERENCES role(id)


Pourriez-vous m'éclairer sur l'erreur s'il vous plaît ?

Cordialement

2 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
13 mars 2021 à 00:22
Bonjour,
Déjà.. aucun rapport avec PHP à proprement parlé.
Là c'est purement un souci de requête SQL ( j'ai donc déplacé ta question dans le bon forum )

Ensuite..je pense que c'est AUTO_INCREMENT et non AUTOINCREMENT
0
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 1
13 mars 2021 à 00:33
Effectivement, c'est AUTO_INCREMENT que je devrais utiliser. Merci pour ton aide.

Par contre, les deux dernières lignes de la requête

role INTEGER,
FOREIGN KEY (role) REFERENCES role(id)

posent toujours problème.
0
yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 1 554
13 mars 2021 à 11:04
bonjour,
un message d'erreur?
0
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 1 > yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024
13 mars 2021 à 12:05
Bonjour,
Voilà l'erreur que j'ai à présent:
General error: 1005 Can't create table `test`.`utilisateur` (errno: 150 "Foreign key constraint is incorrectly formed")
0
yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 1 554 > charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022
13 mars 2021 à 12:36
comment as-tu créé la table role?
0
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 1 > yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024
13 mars 2021 à 22:51
aïe je me rends compte après coup que je ne l'avais pas créé...
Merci pour ton aide !
0
charline159 Messages postés 208 Date d'inscription lundi 14 août 2017 Statut Membre Dernière intervention 22 juin 2022 1 > yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024
Modifié le 13 mars 2021 à 23:33
Cette fois j'ai bien créé la table role mais j'ai quand même une erreur:
errno: 150 "Foreign key constraint is incorrectly formed"
, donc voici tout mon code:
$pdo -> query("CREATE TABLE IF NOT EXISTS utilisateur(
    id INTEGER PRIMARY KEY AUTO_INCREMENT,
    email VARCHAR(50) UNIQUE,
    pseudo VARCHAR(50),
    password VARCHAR(300),
    role INTEGER
    );");

$pdo -> query("CREATE TABLE IF NOT EXISTS Role(
    role INTEGER,
    description VARCHAR(50)
)");

$pdo -> query("ALTER TABLE utilisateur ADD FOREIGN KEY (role) REFERENCES Role (role)");
0