Dans le fichier config.php de mon site, les infos de connexion à la base de données principale sont renseignées et le site fonctionne. Cependant quand j'essaie d'établir une connexion à une autre bdd située sur le même hébergement, je rencontre beaucoup de problèmes.
Sur une page donnée, un short code est censé exécuter une fonction de connexion à la 2eme bdd.
Quand j'utilise PDO ou Mysqli pour le faire, j'ai cette erreur :
Code : Tout sélectionner
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not knownQuand j'utilise la classe wpdb de wordpress, c'est pareil, beaucoup de problèmes. J'ai essayé plein de choses différentes mais je vais vous partager le code qui plante le moins. Avec celui là, la page s'affiche mais la connexion à la base de données ne semble pas établie car toute opération faite sur elle retourne null.
Code php de mon fichier chargé par le short code :
Code : Tout sélectionner
// Inclure le fichier de fonctions et établir la connexion à la base de données
include 'ErpClass_functions.php';
$connexion = connectToDatabase();
// Récupérer les données des types et sous-types ERP depuis la base de données
$typeERPData = getAllFromTypeERP($connexion);
$sousTypeERPData = getAllFromSousTypeERP($connexion);
Fonctions php utilisées :
Code : Tout sélectionner
//Retourne une connexion vers la base de données
function connectToDatabase() {
// Bdd en ligne
$servername = "nomBdd.mysql.db";
$username = "nomBdd";
$password = "mdpBdd";
$dbname = "nomBdd";
$conn = new wpdb($username,$password,$dbname,$servername);
$conn->set_prefix(''); //Avec ou sans cette ligne on a le même résultat
return $conn;
}
//Prend une connexion en argument
//Retourne un tableau contenant tous les tuples de la table type_ERP
function getAllFromTypeERP($connexion) {
$result = $connexion->get_results("SELECT * FROM type_erp");
return $result;
}
//Prend une connexion en argument
//Retourne un tableau contenant tous les tuples de la table sous_type_ERP
function getAllFromSousTypeERP($connexion) {
$result = $connexion->get_results("SELECT * FROM sous_type_erp");
return $result;
}
Pour terminer je précise :
- J'ai déjà vérifié une dizaine de fois si les informations de connexion étaient bonnes.
- La base de données à laquelle je veux me connecter n'est accessible que depuis le serveur où elle est hébergée. C'est le cas de mon site, il se connecte sans problème à la bdd principale dans config.php. Cependant il est peut être possible que l'emplacement de mon code ( dans le dossier du thème enfant utilisé par le site ) l'empêche de se connecter à la deuxième. Dans ce dernier cas je ne sais pas non plus quoi faire.