Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/07/2011, 11h02   #1
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 0
Points : 0
Par défaut Connexion MySQL en PDO

Bonjour à tous,

Je souhaiterais mettre en place une connexion SQL en PDO pour mon site. Pour cela, avant d'effectuer les modifications sur le serveur web, je préfère le faire en local avec wampserver.
Cependant, j'ai quelques petits soucis... Avec le code de connexion suivant :
Citation:
<?php
try {
$bdd = new PDO('mysql:host=localhost;dbname=joshua2', 'root', '');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(Exception $e) {
}
L'erreur, qui m'est renvoyée est la suivante :
Citation:
No database selected
Or, une copie de la base de données est bien présente dans wampserver. J'ai essayé de modifier le nom de cette dernière sur phpmyadmin et dans mon code, mais rien à y faire, je n'ai toujours pas de résultats.

Si cela peut vous aider, j'ouvre la connexion à ma base de données sur un index, auquel sont inclues des pages avec des requêtes SQL.

Je vous serais très reconnaissant si vous pouviez m'aider à résoudre ce problème.

Très cordialement.

Joshua
Joshua_44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 11h31   #2
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Teste cela

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$PARAM_hote='localhost';
$PARAM_nom_bd='joshua2'; 
$PARAM_utilisateur='root'; 
$PARAM_mot_passe=''; 
try
{
         $connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
}
catch(Exception $e)
{
        echo 'Erreur : '.$e->getMessage().'<br />';
        echo 'N° : '.$e->getCode();
}
 
?>
__________________
Pensez à la balise [CODE].
Aucune réponse aux questions par MP.
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 11h37   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 109
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 109
Points : 8 458
Points : 8 458
Citation:
Envoyé par gwharl Voir le message
Teste cela

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$PARAM_hote='localhost';
$PARAM_nom_bd='joshua2'; 
$PARAM_utilisateur='root'; 
$PARAM_mot_passe=''; 
try
{
         $connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
}
catch(Exception $e)
{
        echo 'Erreur : '.$e->getMessage().'<br />';
        echo 'N° : '.$e->getCode();
}
 
?>
faut pas oublier la gestion des erreurs
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 12h01   #4
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 0
Points : 0
Bonjour à vous deux,

J'ai essayé le script que vous m'avez donné, mais il ne marche pas.
J'ai pourtant essayé avec un script de connexion dit "classique", tout marche bien...
Je ne comprends vraiment pas d'où peut provenir le problème ?
Cela viendrait-il d'un bug de wampserver ? J'utilise la version 2.1.

Merci par avance pour votre aide.

Jo'
Joshua_44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 13h02   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Citation:
J'ai essayé le script que vous m'avez donné, mais il ne marche pas.
ça c'est de l'erreur. Et si tu nous disait ce que le serveur à répondu plutôt ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 13h26   #6
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 0
Points : 0
Le serveur a répondu exactement la même erreur qu'auparavant, à savoir "No database selected".
Le soucis est que quand j'utilise un script dit "classique" comme celui-ci, ça marche.

Code :
1
2
3
4
5
6
7
8
$link = mysql_connect('localhost', 'root', '');
$db_selected = mysql_select_db('joshua2', $link);
if (!$db_selected) {
   die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
else {
echo 'connexion reussie';
}
Je ne comprends pas, pourquoi PDO ne veut-il pas fonctionner ?
Joshua_44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 13h57   #7
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
La sélection de la base est définie dans le DSN par le paramètre dbname tout simplement.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 13h58   #8
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 0
Points : 0
J'ai testé le fichier seul et la connexion est réussie.
La requête qui suit derrière est la suivante :
Code :
$requete_news = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 2') or die(mysql_error());
Ce serait donc elle qui ferait tout planter ? Mais pour quelles raisons ?

Merci par avance.

Joshua
Joshua_44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 14h02   #9
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Soit tu utilise PDO du début à la fin soit tu utilise les fonction mysql_* mais pas les deux.

Regarde la doc de PDO pour apprendre à faire des requêtes avec:
Code :
1
2
3
4
5
6
7
8
 
$pdo = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
 
$statment = $pdo->query("REQUETE SQL");
 
foreach ($statement as $row) {
  // ...
}
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 14h38   #10
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juillet 2011
Messages : 5
Points : 0
Points : 0
Merci beaucoup pour ton aide, cela marche impeccablement bien !
Joshua_44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 14h46   #11
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Merci de marquer le sujet en si tu as eu la réponse à ta question
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h24.


 
 
 
 
Partenaires

Hébergement Web