Bonjour,

Je sais que la question revient souvent (puisque j'ai arpenté les forums) mais je n'ai pas pu trouver une solution pour mon cas.

J'utilise pas mal les requêtes PDO, mais j'en ai une qui ne veut pas s'exécuter ou plutôt elle ne renvoi rien, alors qu'elle s'exécute très bien dans PHPMyAdmin :

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
  function connection(){
	  $dbh  = new PDO('mysql:host=serveur;port=3306;dbname=dbname','user','password');
	  $dbh ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	  return $dbh;
  };
 
	function get_user($bdd){
	  try{
	      Header('Content-Type: application/json; charset=utf-8');
		  echo 'debut fonction';// Ajouté pour m'assurer que la fonction s'exécute 
			  $str = 'SELECT t1.ID,t1.user_login,t1.user_email,t1.display_name,t4.name,t6.nom_edp,t7.statut,t1.user_registered,t9.formation 
                        		      FROM table1 t1 LEFT OUTER JOIN table2 t2 ON t1.id = t2.user_id 
									  LEFT OUTER JOIN table3 t3 ON t1.ID = t3.user_id 
									  LEFT OUTER JOIN table4 t4 ON t3.membership_id =t4.id 
									  LEFT OUTER JOIN table5 t5 ON t1.ID = t5.user_id 
									  LEFT OUTER JOIN table6 t6 ON t5.meta_value = t6.nom_ogma 
									  LEFT OUTER JOIN table7 t7 ON t1.ID = t7.user_id 
									  LEFT OUTER JOIN table8 t8 ON t1.ID = t8.user_id 
									  LEFT OUTER JOIN table9 t9 ON t8.id_formation=t9.id 
									  WHERE t2.meta_key ="key_1" AND t5.meta_key="key" AND t2.meta_value="0" 
									  AND (t3.status = "active" OR t3.status = "admin cancelled")
									  ORDER BY t1.user_registered;';
	          $statement = $bdd->query($str);
		  $statement->execute();
		  $results = $statement->fetchAll(PDO::FETCH_ASSOC);
                  $json = json_encode($results);		  
		  echo $json;
	  }catch (Exception $e) {
         echo 'Exception reçue : ',  $e->getMessage(), "\n";
        }
	}
 
  $dbh = connection();
  get_user($dbh);
j'ai essayé de planter la requête, et quand je le fais j'ai bien l'erreur qui s'affiche, donc je n'ai pas d'erreur apparemment .

En vous remerciant par avance,
Khalil