Connexion à une BDD avec PDO

Fermé
Drillan Messages postés 41 Date d'inscription dimanche 29 janvier 2012 Statut Membre Dernière intervention 3 juin 2015 - 5 mai 2014 à 16:07
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 7 mai 2014 à 12:17
Bonjour,

Je tente d'utiliser un fichier PHP "universel" qui me permettra de me connecter à ma base de donnée à chaque session_start(), à l'aide de try/catch. Je précise que c'est un ami qui a créé ce fichier à la base, et qu'il marche très bien sur son site. Sauf que jusqu'à présent, je n'ai qu'obtenu qu'une erreur de mon côté, me disant qu'il n'arrivait pas à se connecter à la base de données.

Le soucis, c'est que je suis assez (voire carrément) novice dans tout ce qui concerne le PDO, du coup je suis incapable de savoir à quoi ce problème est dû.

Voilà le code du fichier en question :
<?php 

header("adherents.php");

//Initialistion des constantes
define("DB_HOST","localhost");
define("DB_NAME","association");
define("DB_USER","root");
define("DB_PASS","");

try{
	$db = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME .';port=' . DB_USER,DB_PASS);
	$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
	$db->exec("SET NAMES 'utf8'");
	//echo "Connecté à la base de données";
}
catch (Exception $e){
	echo "Impossible de se connecter a la BDD";
	exit;
}
?>



"adherents.php" est l'endroit où les adherents de l'association se rendent pour se connecter à leur espace privé.
Y'a-t-il donc moyen de savoir ce qui ne vas pas là dedans ?

Je vous remercie d'avance !
A voir également:

2 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 7/05/2014 à 12:18
Salut,

L'erreur semble venir de la construction de l'objet PDO. En effet, tu indiques pour le paramètre :port le nom de l'utilisateur.

Si ton serveur utilise le port mysql par défaut, tu n'as pas besoin de le renseigner.
Corrige la construction de ton objet PDO comme ceci :
$db = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS);


Bonne journée
0
gretin Messages postés 6 Date d'inscription mardi 6 mai 2014 Statut Membre Dernière intervention 13 juin 2015
Modifié par gretin le 6/05/2014 à 21:23
essai plutôt cela si tu veux

<?php 
session_start();
//connexion à la base de donné
mysql_connect('localhost','root','') or die('error');
//seclectionnons la base de donné
mysql_select_db('association') or die('base de donne introuvable');
//ajoutons une requete = query pour coder les donné sortante en UTF-8
mysql_query('SET NAMES utf8');
?>

sinon essai de voir ici : http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/se-connecter-a-la-base-de-donnees-en-php
-1
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 7/05/2014 à 12:18
L'API Mysql de PHP (les fonctions mysql_*) est obsolète. Elle ne devrait pas être utilisée pour de nouveaux projets et sera bientôt supprimée du langage.
https://www.php.net/manual/fr/mysqlinfo.api.choosing.php
0