Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/02/2015, à 15: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, à 11:04)

Hors ligne

#2 Le 17/02/2015, à 17: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, à 18: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, à 20: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, à 10: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, à 10: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, à 10: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, à 10: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, à 10: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, à 10: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');

cf : http://php.net/manual/fr/pdo.query.php


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#11 Le 18/02/2015, à 10: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 smile

Dernière modification par FeelGui (Le 18/02/2015, à 11:03)

Hors ligne