Probleme de connection
Lwss
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
Warning: PDO::query(): SQLSTATE[3D000]: Invalid catalog name: 1046 Aucune base n'a été sélectionnée in C:\wampk\www\leader\functions\home.func.php on line 7
et mon code
Edit: ajout des balises de code.
et mon code
<?php
$dbhost = "localhost";
$dbname = "blog";
$dbuser = "root";
$dbpassword = "";
try{
$db = new PDO('mysql:host='.$dbhost.';$dbname='.$dbname,$dbuser,$dbpassword,array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES utf8', PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
}catch(PDOException $e){
die('une erreur est survenue lors de la connexion a la base de donnee... ');
}
?>
Edit: ajout des balises de code.
3 réponses
-
Bonjour
$dbname, c'est le nom de ta base de données. Mais dans la chaîne de connexion (et non pas connection), le mot-clé pour donner le nom de la base de données, c'est dbname, pas $dbname. Relis bien ta requête en la comparant à l'exemple dont tu es parti.
Comprends bien la différence entre le nom de variable $dbname que tu as choisi (tu aurais pu prendre $toto) et le mot dbname qui fait partie de la syntaxe de la requête, et que tu n'as pas le droit de modifier. -
-
Bonjour,
Ben si.. il faut justement que tu retires le $ devant le premier dbname....
Essaye ceci<?php $dbhost = "localhost"; $dbname = "blog"; $dbuser = "root"; $dbpassword = ""; try{ $db=new PDO('mysql:host=localhost;'.$dbhost .'='.$dbname .'; charset=utf8',$dbuser , $dbpassword ); // Activation des erreurs PDO $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); }
Au passage, lorsque tu écrieras des requêtes.. pense également à les mettre dans des blocs TRY/CATCH pour voir les éventuelles erreurs..
Comme ceci://préparation de la requête et des variables $sql = "INSERT INTO matable (champ1,champ2) VALUES (:valeur1,:autrevaleur)"; $datas = array(':valeur1'=>$valeur1, ':autrevaleur'=>$toto); //Execution de la requete try{ $requete = $db-> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); }