IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Mon script fonctionne sur un serveur OVH mutu mais pas un autre serveur OVH mutu - PDO et json


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut Mon script fonctionne sur un serveur OVH mutu mais pas un autre serveur OVH mutu - PDO et json
    Bonsoir a tous,

    Et oui vous ne comprenez rien a mon titre et moi non plus ....

    En résumé, j'ai acheté deux hebergements chez OVH formules PERSO tous les deux, datacenter a Gravelines tous les deux, en PHP 5.6 tous les deux et SQL 5.6 également.

    Je mets le meme fichier contenant le meme script sur les deux hebergements, je mets la meme table sql pour les deux.

    J'appelle mon fichier et l'un me retourne les résulatats et l'autre non, je m'arrache les cheveux depuis 4H

    mon url : events.php?idUT=2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <?php
    session_start();
    include ('conx.php');
     
    $suff_table="extra_";
    $json = array();
     
    $idUT=@$_GET['idUT'];
     
    /// test de fonctionnalité avec une requete en while :
    $r_bq = mysql_query("SELECT * FROM `".$suff_table."rdv` where `rdv_supp`='0'  ORDER BY `id` desc");
    while($lr_bq = mysql_fetch_array($r_bq, MYSQL_ASSOC))
    {
    	echo 'id : '.$lr_bq['id'].'<br>';
    }
    ///  Le test fonctionne j'ai bien les infos qui s'affichent
     
     
    /// TEST PDO 
    $requete = "SELECT * FROM `".$suff_table."rdv` where `rdv_supp`='0' ORDER BY `id` desc";
    try 
    {
    	$bdd = new PDO('mysql:host='.$host.';dbname='.$dbname.'', ''.$loginbdd.'', ''.$passbdd.'');
    }
    catch(PDOException $e)
    {
    	exit('Impossible de se connecter à la base de données.');
    }
     
    $resultat = $bdd->query ($requete);
     
    var_dump($resultat);
     
    echo json_encode($resultat-> fetchAll(PDO::FETCH_ASSOC));
    ?>
    le var_dump me donne : object(PDOStatement)#2 (1) { ["queryString"]=> string(66) "SELECT * FROM `extra_rdv` where `rdv_supp`='0' ORDER BY `id` desc" }

    Sur l'un de mes serveur, non seulement le while me renvoi des infos mais le PDO aussi
    Sur l'autre seul le while me renvoi des infos

    J'ai vérifie le phpinfo des deux, ils sont strictement similaires

    Je ne comprends plus rien, demain j'appelle OVH.

    Merci pour toute votre aide.

    Bonne nuit.

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Salut,

    Visiblement ton code fonctionne si tu n'as pas d'erreur et que la méthode query de PDO retourne bien un objet de type PDOStatement.

    As-tu vérifié ce que retourne $resultat-> fetchAll(PDO::FETCH_ASSOC) avant de faire un json_encore dessus ?
    Est-ce que tu es certain que les deux tables sont identiques et qu'elles contiennent toutes les deux les mêmes données ? (par exemple si tu exécutes la requêtes SQL directement dans MySQL, est-ce que tu obtiens les mêmes résultats des deux côtés?)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut
    Bonjour Thomas,

    La table de données a été copiée sur sur l'autre base donc 100% identique.

    Et directement dans le phpmyadmin j'ai exactement le meme resultat

    merci pour ton aide

  4. #4
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Curieux tout ça...

    Dans la doc de fetchAll (http://php.net/manual/fr/pdostatement.fetchall.php), il n'est pas fait mention du paramètre FETCH_ASSOC, qu'est-ce qu'il se passe si tu laisses la valeur par défaut ?

    Et si tu var_dump le résultat de ton fetchAll() dans les deux cas, qu'est-ce que tu obtiens ?

    Je ne sais pas si c'est le cas avec la version 5.6, mais dans la version 5 il peut y avoir deux fichiers ini, un pour apache et un pour la cli. Comment est-ce que tu as vérifié la similitude des deux phpinfo (des deux serveurs) ? Accessoirement est-ce que le script est exécuté par le serveur ou la cli ?

    Est-ce OVH t'a répondu ?


    P.S. Personnellement je remplacerais les quotes (`) par des apostrophes (') par précaution.

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Concernant fetchAll, la configuration est la même que pour fetch :
    fetch_style
    Contrôle le contenu du tableau retourné comme documenté dans la fonction PDOStatement::fetch(). Valeur par défaut : PDO::ATTR_DEFAULT_FETCH_MODE (qui prend sa valeur par défaut de PDO::FETCH_BOTH).
    Personnellement je remplacerais les quotes (`) par des apostrophes (') par précaution.
    Surtout pas !
    En SQL une chaine entre backquotes (`) est une variable à ne pas interpréter : par exemple, si tu as une colonne qui s'appelle and (ce qui est une très mauvaise idée, soit dit en passant car and est un mot clé réservé), le fait de la mettre entre backquotes (`) va dire à la base "utilise and comme nom de colonne"
    Une chaine entre quotes simples (') est une chaine qui veut la valeur de son contenu.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Citation Envoyé par Celira Voir le message
    ...
    Merci pour ces précisions (en particulier concernant les backquotes, je n'avais jamais cherché à comprendre à quoi elles servaient ).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Un regex qui fonctionne sur les testeurs en ligne, mais pas dans mon code
    Par billybobbonnet dans le forum Développement Windows
    Réponses: 4
    Dernier message: 28/01/2015, 17h20
  2. Réponses: 2
    Dernier message: 18/06/2013, 19h38
  3. [Google Maps] Fonctionne sur IE, Firefox, Chrome, iOS mais pas Safari
    Par kfa1983 dans le forum APIs Google
    Réponses: 0
    Dernier message: 05/06/2011, 23h42
  4. Requête fonctionnant sur une version 4.1 mais pas 4.0
    Par DreammyKetty dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/11/2007, 22h31
  5. Mon script fonctionne avec un bouton, mais pas avec l'image!
    Par julien.63 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/04/2006, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo