1046 no database selected

Fermé
amine - 13 juil. 2022 à 11:53
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 13 juil. 2022 à 13:02

quand je veux insert des donner dans ma base avec mon formulaire php et html

SQLSTATEINSERT INTO `Global` ( `id_Client`, `Type_Produit`, `Modele`, `Couleur`, `Mot_de_Passe`, `Accessoires`, 'Nom_Client', 'Prenom_Client', 'Mail_Client', 'Tel_Client', 'Date_P_charge', 'Rendu_le', 'Magasin_en_charge', 'statut', 'Commentaires', 'Prestation', 'Tarif') VALUES( '','','','','','','','','','','','','','','','Clone','36')
SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected

voila mon code

<?PHP

$localhost = "localhost";

$username = "seroo_joam";

$password = "joam789+seroo";

$dbname = "seroo_joam";

try {

  $conn = new PDO("mysql:host=$localhost;dbname=$seroo_joam", $username, $password);

  // définir le mode exception d'erreur PDO

  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $sql = "INSERT INTO `Global` ( `id_Client`, `Type_Produit`, `Modele`, `Couleur`, `Mot_de_Passe`, `Accessoires`, 'Nom_Client', 'Prenom_Client', 'Mail_Client', 'Tel_Client', 'Date_P_charge', 'Rendu_le', 'Magasin_en_charge', 'statut', 'Commentaires', 'Prestation', 'Tarif')

VALUES( '$_POST[id_Client]','$_POST[Type_Produit]','$_POST[Modele]','$_POST[Couleur]','$_POST[Mot_de_Passe]','$_POST[Accessoires]','$_POST[Nom_Client]','$_POST[Prenom_Client]','$_POST[Mail_Client]','$_POST[Tel_Client]','$_POST[Date_P_charge]','$_POST[Rendu_le]','$_POST[Magasin_en_charge]','$_POST[Statut]','$_POST[Commentaires]','$_POST[Prestation]','$_POST[Tarif]')

";

  // utiliser la fonction exec() car aucun résultat n'est renvoyé

  $conn->exec($sql);

  echo "Nouveaux enregistrement ajoutés avec sucéés<br> <a href='global.php'>Retour au formulaire</a>";

} catch(PDOException $e) {

  echo $sql . "<br>" . $e->getMessage();

}

$conn = null;

?>

2 réponses

jordane45 Messages postés 38176 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 14 mai 2024 4 667
13 juil. 2022 à 12:43

Bonjour

Ne pas utiliser la fonction exec. Mais plutôt passer par l'instruction prepare puis execute

Il serait bien également de séparer dans deux blocs distincts try/catch. Ta connexion à la base et le traitement de la requête SQL...


0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
13 juil. 2022 à 13:02

Bonjour,

Il faut utiliser ta variable dbname dans ta connexion PDO : 

$conn = new PDO("mysql:host=$localhost;dbname=$dbname", $username, $password);

Préfère l'utilisation d'une requête préparée comme le recommande Jordane.

https://www.php.net/manual/fr/pdo.prepared-statements.php

0