Bonjour,

J'ai un problème de fonctionnement absurde avec mes requête SQL.

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

Je me connecte facilement, sans erreur, à ma base de données 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']);
Ensuite voici ma première requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
  $sql = 'CALL param_session(1)';
  $ret_param_divers = $conn->query($sql);
Elle appelle une procédure stockée dans la base de données qui s'écrit comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
DELIMITER |
DROP PROCEDURE IF EXISTS param_session |
CREATE PROCEDURE param_session(IN vid INT(1))
READS SQL DATA
BEGIN
  SELECT * FROM param_divers WHERE id = vid;
END
|
Évidemment je vous épargne toutes mes routines de vérification d'erreur.
Ensuite je dois fermer ma connexion et la ré-ouvrir pour pouvoir faire ma deuxième requête qui s'écrit comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
  $sql = 'CALL valid_login(' . chr(34) . $id_utilisateur . chr(34) . ')';
  $ret_utilisateurs = $conn->query($sql);
Elle appelle une procédure stockée dans la base de données qui s'écrit comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
DELIMITER | 
DROP PROCEDURE IF EXISTS valid_login |
CREATE PROCEDURE valid_login(IN vid_utilisateur VARCHAR(30) CHARSET utf8)
READS SQL DATA
BEGIN
  SELECT * FROM utilisateurs
  WHERE identifiant = vid_utilisateur;
END
|
Alors rien de bien sorcier, mais je ne réussi pas à cerner le problème.

Quelqu'un aurait une idée ou une piste de solution ?

Merci à l'avance !