Bonjour à tous,
Je suis actuellement la vidéo Gestion d'un espace membre ,"https://www.grafikart.fr/tutoriels/php/gestion-membre-229", et je recontre un problème aux alentours de la minute 28.
J'ai un formulaire html et je veux donc envoyer mes données collectées dans ma database mySQL. Je code sous linux avec PHPStorm.
Quand j envoie mon formulaire j obtiens
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected' in /home/florian/www/cup/creation.php:21 Stack trace: #0 /home/florian/www/cup/creation.php(21): PDOStatement->execute(Array) #1 {main} thrown in /home/florian/www/cup/creation.php on line 21
Voici mon code :
18 if (empty($errors)){
19 require_once '_inc/db.php';
20 $req = $pdo->prepare('INSERT INTO cups SET nomClan = ?, pseudo = ?, email = ?, nombreMax = ?');
21 $req->execute([$_POST['nomClan'],$_POST['pseudo'],$_POST['email'],$_POST['nombreMax']]);
22 die("Le tournoi à bien été crée");
23 }
De plus à la ligne 21, PHPStorm me surligne le "prepare();" et me dit "SQL dialect is not configured", or je ne comprend pas puisque dans l onglet database j ai bien "MySQL - site@localhost (site) : connected". 'site' étant le nom de ma db.
Ceci étant ma première expérience avec une base de donnée, toute piste est la bienvenue !
"SQL dialect is not configured" : PhpStorm t'invite à lui confirmer que tu utilise le langage SQL dans tes scripts pour qu'il active l'autocomplétion pour ce langage ainsi que la coloration syntaxique. Il me semble que si tu survole (click sur) le code incréminé, tu veras l'infobulle avec la petite ampoule, => dans ce menu contextuel tu pourras le faire.
Peux tu montrer le code de ton _inc/db.php, peut être qu'une erreur s'y est glissée, car apparemment la connexion à la base ne fonctionne pas depuis ton script "No database selected"
Bonjour.
Ce n'est pas parce que tu es connecté à ta base de données dans l'onglet Database sur PHPStorm, que tu n'as pas d'erreur dans ton code PHP.
Dans les sources du tutoriel, le dossier se nomme inc
et non _inc
, donc, à moins que tu aies toi même modifié le nom du dossier pour qu'il se nomme _inc
, sinon ce n'est pas étonnant que la connexion ne se fait pas avec ta base de données en PHP.
Malheuresement mon dossier se nomme bien _inc donc le lien dans require_once '_inc/db.php'; n'est pas erroné.
bonjour, fournis nous le contenue de ton fichier db qu'on puisse te dire ou est l'erreur cache le mdp si ca te fait peur
Merci
Bonjour,
Voici mon dossier db.php
<?php
$pdo = new PDO('mysql:site;host=localhost' , 'root' , '****');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::FETCH_OBJ, PDO::ATTR_DEFAULT_FETCH_MODE);
Je rappelle que ma base de donnée s appelle 'site' et ma table 'cups'.