Ajout table MySQL erreur
Résolu
Bonjour, j'essaie actuellement de rajouter une table avec MySQL sauf que j'ai une erreur côté PHP.
Voilà ma requête MySQL:
Et l'erreur PHP:
(la ligne 71 fait référence à la première ligne de ma requête MySQL, donc
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:
Pourriez-vous m'éclairer sur l'erreur s'il vous plaît ?
Cordialement
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
-
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.-
-
@yg_beBonjour,
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")
-
Contributeur@charline159comment as-tu créé la table role?
-
@yg_beaïe je me rends compte après coup que je ne l'avais pas créé...
Merci pour ton aide ! -
@yg_beCette 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)");
-
-
ModérateurBonjour,
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