Pages : 1
#1 Le 17/02/2015, à 14:46
- FeelGui
[RESOLU] PROBLEME PDO - Page blanche qui s'affiche
Bonjour,
Etant sur un mutualisé OVH, je décide de prendre un serveur dédié sous Ubuntu (Ubuntu Server 14.10). Lors du transfert tout fonctionne sauf les PDO. En effet, dès que je tente de me connecter & d'accéder à une requête mysql en utilisant les PDO, cela ne me retourne rien & me laisse la fin de ma page vide. Si j'utilise les requêtes traditionnelles, ça fonctionne pourtant...
J'ai donc fait un phpinfo() qui me retourne, sur la partie PDO, ceci :
PDO
PDO support enabled
PDO drivers mysql
pdo_mysql
PDO Driver for MySQL enabled
Client API version 5.5.41
Directive : pdo_mysql.default_socket
Local Value : /var/run/mysqld/mysqld.sock
Master Value : /var/run/mysqld/mysqld.sock
Et mon fichier qui se connecte a PDO est le suivant :
// Connection au serveur
try {
$dns = 'mysql:localhost;dbname=dbsite';
$utilisateur = 'username';
$mdp = 'password';
// Options de connection
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
);
// Initialisation de la connection
$bdd = new PDO( $dns, $utilisateur, $mdp, $options );
}
catch ( Exception $e ) {
echo "Connection à MySQL impossible : ", $e->getMessage();
die();
}
$resultat = $bdd->query('SELECT id, nom FROM utilisateurs');
$donnees = $resultat->fetch() or die(print_r($bdd->errorInfo()));
$nom = $donnees['nom'];
$resultat->closeCursor();
echo $nom;
Si je fais un écho avant $resultat, il s'affiche (par exemple : $echo 'bonjour';) mais si je le met après, il ne s'affiche plus.
Avez-vous déjà rencontré ce problème ? Merci de votre aide.
Dernière modification par FeelGui (Le 18/02/2015, à 10:04)
Hors ligne
#2 Le 17/02/2015, à 16:20
- pires57
Re : [RESOLU] PROBLEME PDO - Page blanche qui s'affiche
donnes nous les messages d'erreur dans tes logs.
Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn
Hors ligne
#3 Le 17/02/2015, à 17:15
- FeelGui
Re : [RESOLU] PROBLEME PDO - Page blanche qui s'affiche
Bonjour Pires57,
Je n'ai pas de message d'erreur. Les fichiers mysql.err et mysql.log sont vides.
Quel fichier souhaites-tu ?
Hors ligne
#4 Le 17/02/2015, à 19:03
- pires57
Re : [RESOLU] PROBLEME PDO - Page blanche qui s'affiche
C'est pas MySQL qui retourne les erreur. Il faut le fichier error.log
Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn
Hors ligne
#5 Le 18/02/2015, à 09:01
- FeelGui
Re : [RESOLU] PROBLEME PDO - Page blanche qui s'affiche
Je n'ai pas de fichier error.log dans var/log. As-t-il changé de place sous Ubuntu 14.10 ?
Hors ligne
#6 Le 18/02/2015, à 09:25
- pires57
Re : [RESOLU] PROBLEME PDO - Page blanche qui s'affiche
/var/log/apache/
ou
/var/log/apache2/
Je ne suis plus certains.
Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn
Hors ligne
#7 Le 18/02/2015, à 09:29
- FeelGui
Re : [RESOLU] PROBLEME PDO - Page blanche qui s'affiche
Pires57,
en effet, j'ai finalement trouvé et je te confirme qu'il se trouvait dans le fichier apache2/.
Voici les erreurs que j'y retrouve :
[Wed Feb 18 09:24:03.474472 2015] [:error] [pid 5614] [client 80.215.178.160:60212] PHP Fatal error: Call to a member function fetch() on a non-object in /var/www/site/version-test/test.php on line 42
Hors ligne
#8 Le 18/02/2015, à 09:34
- pires57
Re : [RESOLU] PROBLEME PDO - Page blanche qui s'affiche
postes nous le fichiers test.php
Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn
Hors ligne
#9 Le 18/02/2015, à 09:40
- FeelGui
Re : [RESOLU] PROBLEME PDO - Page blanche qui s'affiche
Je viens de cibler plus précisément le problème & voici ce que me retourne Error.log
[Wed Feb 18 09:35:58.089864 2015] [:error] [pid 5197] [client 80.215.178.160:60201] PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected' in /var/www/site/version-test/test.php:41\nStack trace:\n#0 /var/www/notredemocratie/version-test/test.php(41): PDO->query('SELECT id, nom ...')\n#1 {main}\n thrown in /var/www/site/version-test/test.php on line 41
Et mon fichier test.php
<?php
// $serveur = "localhost";
//$nom_base = "website";
//$login = "username";
//$pwd = "password";
// connexion à MySQL
//mysql_connect ($serveur,$login,$pwd) or die ('ERREUR '.mysql_error());
// sélection de la base de données
//mysql_select_db ($nom_base) or die ('ERREUR '.mysql_error());
//if (mysql_connect ($serveur,$login,$pwd)) {
// echo 'connexion réussie<br>';
//}
//else {
// echo 'connexion impossible...<br>'.mysql_error();
//}
//$requete = "SELECT * FROM utilisateurs WHERE banni = '0'";
//$resultat = mysql_query ($requete);
//$ligne = mysql_fetch_assoc($resultat);
//echo 'le premier utilisateur a pour id : '.$ligne["id"].'<br>et son nom est '.$ligne["nom"];
// Connection au serveur
try {
$dns = 'mysql:localhost;dbname=website';
$utilisateur = 'username';
$mdp = 'password';
// Options de connection
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
// Initialisation de la connection
$bdd = new PDO( $dns, $utilisateur, $mdp, $options );
}
catch ( Exception $e ) {
echo "Connection à MySQL impossible : ", $e->getMessage();
die();
}
$resultat = $bdd->query('SELECT id, nom FROM utilisateurs');
$donnees = $resultat->fetch() or die(print_r($bdd->errorInfo()));
$nom = $donnees['nom'];
$resultat->closeCursor();
echo $nom;
?>
Hors ligne
#10 Le 18/02/2015, à 09:54
- pires57
Re : [RESOLU] PROBLEME PDO - Page blanche qui s'affiche
$bdd n'est pas un objet, cela ne peut pas marcher
$bdd = new PDO ....
$resultat = $bdd->query('SELECT id, nom FROM utilisateurs');
Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn
Hors ligne
#11 Le 18/02/2015, à 09:56
- FeelGui
Re : [RESOLU] PROBLEME PDO - Page blanche qui s'affiche
Pires57,
Je viens de trouver la solution. Pour ceux qui passent par là & qui ont le même problème que moi, il suffit de rajouter à la ligne de connexion à Mysql via les PDO : mysql:host=localhost.
Voici ce que cela donne dans mon cas :
try {
$dns = 'mysql:host=localhost;dbname=website';
$utilisateur = 'username';
$mdp = 'password';
// Options de connection
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
// Initialisation de la connection
$bdd = new PDO( $dns, $utilisateur, $mdp, $options );
}
catch ( Exception $e ) {
echo "Connection à MySQL impossible : ", $e->getMessage();
die();
}
Merci Pires57 de ton implication dans mon problème qui est maintenant résolu
Dernière modification par FeelGui (Le 18/02/2015, à 10:03)
Hors ligne
Pages : 1