Bonjour,

J'ai un problème qui vous paraîtra peut-être idiot, mais voici.

Mon environnement :
Windows 10, version 1067
Apache 2.4.23
PHP 7.0.10
MySQL 5.7.14

J'ai eu beau faire toutes les recherches possibles, mais en vain.
Je me connecte à une base de données MySQL avec PHP comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
  $_SESSION['nom_serveur']    // localhost  // nom du serveur
  $_SESSION['id_serveur']     // root       // id de l'utilisateur du serveur
  $_SESSION['passe_serveur']  // a          // mot de passe de l'utilisateur du serveur
  $_SESSION['nom_bdd']        // gch_jdb    // nom de la base de données
 
  $conn = new mysqli($_SESSION['nom_serveur'], $_SESSION['id_serveur'], $_SESSION['passe_serveur'], $_SESSION['nom_bdd']);
Évidemment tout fonctionne bien, parce que c'est comme dans le livre.

Mais voilà, je veux construire une chaîne de connexion permanente (concaténation des quatre variables de paramètres dans une seule variable nommée $_SESSION['conn_string']), à utiliser tout le long d'une session, comme suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
  $a = $_SESSION['nom_serveur'] . ', ' . $_SESSION['id_serveur'] . ', ';
  $a = $a . $_SESSION['passe_serveur'] . ', ' . $_SESSION['nom_bdd'];
  $_SESSION['conn_string'] = $a;
 
  $conn = new mysqli($_SESSION['conn_string']);
Mais là, la machine ne veut pas coopérer et me retourne le message d'erreur suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
  // ----------------------------------------------
  // Erreur no : 1045
  // Description : Accès refusée pour l'utilisateur
  // ''@'@localhost' (mot de passe: NON)
  // ----------------------------------------------
Là je me suis dit que la mau... machine ne m'aurait pas comme ça, alors j'ai essayé d'ajouter des guillemets simples ou doubles, avec ou sans espace, comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
  $a = chr(39) . $_SESSION['nom_serveur'] . chr(39) . ', ' . chr(39) . $_SESSION['id_serveur'] . chr(39) . ', ';
  $a = $a . chr(39) . $_SESSION['passe_serveur'] . chr(39) . ', ' . chr(39) . $_SESSION['nom_bdd'] . chr(39);
  $_SESSION['conn_string'] = $a;
 
  $conn = new mysqli($_SESSION['conn_string']);
Mais rien à faire, la machine s'acharne à me faire la vie dure et me retourne le message d'erreur suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
  // ----------------------------------------------------------
  // Erreur no : 2002
  // Description : php_network_getadresses: getaddrinfo failed:
  // Hôte inconnu.
  // ----------------------------------------------------------
Est-ce quelqu'un pourrait éclairer ma lanterne, car je suis à court d'idées ?

Merci d'avance pour votre aide.