No database selected
Esmahi
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
lors de test de ce code j'ai un code d'erreur comme suit :
'SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected'
et voila le code :
<?php
try {
$pdo = new PDO("mysql:host = localhost ; dbname = facturation" , "root" , "");
$pdo -> setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION);
echo "connected";
echo "</br>";
$pdo -> getAttribute(constant("PDO::ATTR_CONNECTION_STATUS"));
} catch (PDOException $e) {
die("error : could not connected".$e -> getMessage());
}
?>
<?php
try {
$SQL = "SELECT * FROM clients";
$result = $pdo -> query($SQL);
if($result -> rowCount() > 0){
echo "<table>";
echo "<tr>";
echo "<th>idClient</th>";
echo "<th>nom</th>";
echo "<th>prenom</th>";
echo "<th>ville</th>";
echo "<th>tel</th>";
echo "</tr>";
while($row = $result -> fetch()) {
echo "<tr>";
echo "<td>" .$row['idClient']."</td>";
echo "<td>" .$row['nom'] ."</td>";
echo "<td>" .$row['prenom']."</td>";
echo "<td>" .$row['ville']."</td>";
echo "<td>" .$row['tel']."</td>";
echo "</tr>";
}
echo "</table>";
}else {
echo "no records matching";
}
} catch (PDOException $e) {
die("Error : ".$e ->getMessage());
}
?>
lors de test de ce code j'ai un code d'erreur comme suit :
'SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected'
et voila le code :
<?php
try {
$pdo = new PDO("mysql:host = localhost ; dbname = facturation" , "root" , "");
$pdo -> setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION);
echo "connected";
echo "</br>";
$pdo -> getAttribute(constant("PDO::ATTR_CONNECTION_STATUS"));
} catch (PDOException $e) {
die("error : could not connected".$e -> getMessage());
}
?>
<?php
try {
$SQL = "SELECT * FROM clients";
$result = $pdo -> query($SQL);
if($result -> rowCount() > 0){
echo "<table>";
echo "<tr>";
echo "<th>idClient</th>";
echo "<th>nom</th>";
echo "<th>prenom</th>";
echo "<th>ville</th>";
echo "<th>tel</th>";
echo "</tr>";
while($row = $result -> fetch()) {
echo "<tr>";
echo "<td>" .$row['idClient']."</td>";
echo "<td>" .$row['nom'] ."</td>";
echo "<td>" .$row['prenom']."</td>";
echo "<td>" .$row['ville']."</td>";
echo "<td>" .$row['tel']."</td>";
echo "</tr>";
}
echo "</table>";
}else {
echo "no records matching";
}
} catch (PDOException $e) {
die("Error : ".$e ->getMessage());
}
?>
A voir également:
- Invalid catalog name: 1046 no database selected
- Borland database engine - Télécharger - Édition & Programmation
- Dns probe finished no internet ✓ - Forum DNS
- Nº sur clavier ✓ - Forum Windows
- No such file or directory ✓ - Forum Linux / Unix
- No epg found - Forum Box et Streaming vidéo
1 réponse
Bonjour,
Ta question concernant avant tout le php .. je la déplace dans le forum php.
Ensuite, lorsque tu postes du code sur le forum, tu dois utiliser les balises de code.
Explications ( à lire entièrement ! ) disponibles ici :https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Es-tu sûr des informations saisies ?
Et évites les espaces dans la chaine de connexion ...
Essayes ça:
Si le souci persiste, vérifie le nom de la base de données .. ( éventuellement, mets nous une capture écran de ton phpmyadmin)
PS: Il aura d'autres choses à revoir au niveau de ton code...
- Par exemple, il est préférable de privilégier les requêtes préparées au lieu de la méthode query
- La méthode rowCount est déconseillée en PDO pour des requêtes de type select
- Sépare les blocs TRY/CATCH de tes requêtes et l'utilisation du résultat de la requête pour générer ton html
Tout ça améliorera ton code, sa lisibilité et donc sa maintenabilité (sans parler de la sécurité pour les requêtes préparées)
Ta question concernant avant tout le php .. je la déplace dans le forum php.
Ensuite, lorsque tu postes du code sur le forum, tu dois utiliser les balises de code.
Explications ( à lire entièrement ! ) disponibles ici :https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Es-tu sûr des informations saisies ?
Et évites les espaces dans la chaine de connexion ...
Essayes ça:
try{ $pdo =new PDO('mysql:host=localhost;dbname=facturation; charset=utf8', 'root', ''); // Activation des erreurs PDO $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); echo "connected"; } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); }
Si le souci persiste, vérifie le nom de la base de données .. ( éventuellement, mets nous une capture écran de ton phpmyadmin)
PS: Il aura d'autres choses à revoir au niveau de ton code...
- Par exemple, il est préférable de privilégier les requêtes préparées au lieu de la méthode query
- La méthode rowCount est déconseillée en PDO pour des requêtes de type select
- Sépare les blocs TRY/CATCH de tes requêtes et l'utilisation du résultat de la requête pour générer ton html
Tout ça améliorera ton code, sa lisibilité et donc sa maintenabilité (sans parler de la sécurité pour les requêtes préparées)