显示来自INNER JOIN的结果

问题描述:

我想尽可能以最简单的方式显示INNER JOIN的结果。我试过这但不起作用:显示来自INNER JOIN的结果

<?php 
     $serveur = "localhost"; 
     $login = "root"; 
     $pass = "root"; 

     try{ 
      $conn = new PDO("mysql:host=$serveur;dbname=test2", $login, $pass); 

      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

      //On place notre requête dans une variable 
      $jointure_int = 
       "SELECT Inscrits.prenom, Commentaires.commentaire 
       FROM Inscrits 
       INNER JOIN Commentaires 
       ON Inscrits.id = Commentaires.id_inscrit"; 

      //On prépare notre requête 
      $requete = $conn->prepare($jointure_int); 

      //On exécute notre requête 
      $resultat = $requete->execute(); 

      echo "<pre>"; 
      print_r($resultat); 
      echo "</pre>"; 

     } 

     catch(PDOException $e) { 
      echo 'Echec : ' . $e->getMessage(); 
     } 
?> 

我知道我的SQL语句正常工作(我在MySQL中测试过)。我正在使用PDO。这里唯一的print_是数字“1”。

我想了解为什么这段代码不起作用。不是我的变量$ resultat数组?我无法打印来自联接的结果吗?什么是最简单的战争来展示这个结果(我是否有义务获取所有东西?)?

我创建这个代码只是为了自我训练的目的,我不是说在任何网站上都会用到它。

预先感谢您!

​​只是返回表示有错误的布尔值。所以,print_r($resultat)打印truefalse

你的问题的答案:

什么是显示这个结果

使用fetchAll()最简单的战争。你可以在这里看到PHP manaual

+0

谢谢你的回答。那么如果我遵循它,上面的变量$ resultat只能存储TRUE(1)或FALSE(0)?我必须先获取结果才能获取数组,并且能够在此之后进行print_r,那对吗? – 2015-02-09 04:17:53

+0

@PierreGiraud对。 1代表'true',0代表'false',这意味着执行查询失败。你可以在'execute()'返回'true'后获取行。 有两个函数与从结果集中获取行有关。 'fetchAll()'一次获取所有行。 'fetch()'每次调用都会逐行读取。如果有几行或者你想一次打印所有的行,但是会消耗大量的内存,'fetchAll()'会更好。 – 2015-02-09 04:31:24