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

Langage PHP Discussion :

Changement des modalités de connexion à vos bases de données OVH


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 512
    Par défaut Changement des modalités de connexion à vos bases de données OVH
    Bonjour
    Suite au changement des modalités de connexion aux bases de données (OVH) j'essaie de refaire fonctionner mes scripts PHP.
    J'ai du abandonner la connexion de type mysqli_connect et je teste donc PDO.

    Voici un essai de code :

    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
    <?php
    include "global.php3";
     
    $s="mysql:host=".IKI_DATABASE;
     
    echo $s;
     
    echo "<br>";
     
    try {
    	echo "]";echo "<br>";
    	$db = new PDO($s,IKI_LOGIN,IKI_PASSWORD);
    	foreach($db->query('SELECT * from PARC_POINT') as $row) {
            print_r($row);
    		echo "+";
    		echo "<br>";
    		}
    	echo "[";echo "<br>";	
    	$db=NULL;
    	}
    	catch (PDOException $e) {
    		print "Erreur !: " . $e->getMessage() . "<br/>";
        die();
    }
    (IKI_DATABASE,IKI_LOGIN et IKI_PASSWORD sont définis dans gobal.php3)

    Il ne produit pas d'erreur mais ne retourne pas le contenu de la table. La table PARC_POINT existe et est accessible avec PhPMyAdmin, elle n'est pas vide. les caractères [ et ] sont bien affichés et la chaine $s aussi. Quelqu'un voit-il une erreur dans ce code ? Merci

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Par défaut
    Bonjour,

    A mon sens il faudrait dire à PDO d'utiliser des exceptions pour le bloc try fasse ce que tu attends :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    new PDO(
        $s,
        IKI_LOGIN,
        IKI_PASSWORD,
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
    );
    A partir de là s'il y a un problème une exception sera levée et elle devrait être affichée par le bloc catch.

  3. #3
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Bonjour,

    1- "changement des modalités de connexion aux bases de données (OVH)"
    De ce que je sais, il ne s'agit que du changement de NOM de la base.
    Il te suffisait donc de modifier ta constante IKI_DATABASE.

    Tu n'étais pas obligé de passer de mysqli_ à PDO, MAIS c'est une bonne idée, puisque PDO est devenu la norme.

    2- A LIRE : (notamment : le Script de connexion)


  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 512
    Par défaut
    Citation Envoyé par ErwinB Voir le message
    Bonjour,

    A mon sens il faudrait dire à PDO d'utiliser des exceptions pour le bloc try fasse ce que tu attends :
    A partir de là s'il y a un problème une exception sera levée et elle devrait être affichée par le bloc catch.
    Bonjour
    Merci de vos réponses. Concernant cette proposition voici les résultat après inclusion des exceptions avec diverses valeurs du premier paramètre (mysql:...) :

    mysql:host=makhnoiki.mysql.db => SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected

    mysql:localhost=makhnoiki.mysql.db => SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

    mysql:host=localhost;port=3306;dba_name=makhnoiki.mysql.db => SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 512
    Par défaut
    J'ai résolu le problème en utilisant en effet une connexion msqli_connect faute d'y parvenir avec PDO
    Toutefois je reste sans explications sur le fait cette instruction fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_connect(IKI_DATABASE,IKI_LOGIN, IKI_PASSWORD,IKI_LOGIN);
    bien qu'elle redouble le paramètre IKI_LOGIN en 4eme position !
    Or IKI_LOGIN n'est autre que le nom de la base à l'ancienne méthode c'est à dire sans "mysql.db"
    Je n'ai pas d'explication... mais je vais m'en contenter pour le moment.

  6. #6
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    je t'ai pourtant mis un LIEN inintéressant pour PDO....

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 512
    Par défaut
    J'ai recommencé tous mes tests à partir de ce lien. Comme ça ne fonctionnait pas j'ai repris mysqli_connect et c'est là que je suis parvenu à me connecter dans les conditions décrites. Toutefois, si ça t'intéresse, voici les résultats obtenus avec ce code :
    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
    <?php
    include "global.php3";
     
    $s="mysql:localhost=".IKI_DATABASE; partie variable
    echo $s;
    echo "<br>";
    try {
    	echo "[";echo "<br>";
    	$db = new PDO($s,IKI_LOGIN,IKI_PASSWORD,[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
    	$row=$db->query('SELECT * from PARC_POINT');
    	echo $row['POI_ID'];
     
    	foreach($db->query('SELECT * from PARC_POINT') as $row) {
            print_r($row);
    		echo "+";
    		echo "<br>";
    		}
    	echo "]";echo "<br>";	
    	$db=NULL;
    	}
    	catch (PDOException $e) {
    		print "Erreur !: " . $e->getMessage() . "<br/>";
        die();
    }
     
    ?>
    Voici les résultats avec 4 différentes valeurs du premier paramètre de PDO
    1) mysql:host=makhnoiki.mysql.db => SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected

    2) mysql:localhost=makhnoiki.mysql.db => SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

    3) mysql:host=localhost;port=3306;dba_name=makhnoiki.mysql.db => SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

    4) makhnoiki.mysql.db => Erreur !: invalid data source name
    Pas faute d'avoir essayé donc !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/03/2011, 10h49
  2. Réponses: 4
    Dernier message: 10/08/2008, 19h41
  3. Gestion des connexions à la base de données
    Par DoubleU dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 04/07/2008, 15h04
  4. Réponses: 3
    Dernier message: 30/05/2008, 14h35
  5. Réponses: 2
    Dernier message: 04/05/2007, 15h13

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