显示来自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)
打印true
或false
。
你的问题的答案:
什么是显示这个结果
使用fetchAll()
最简单的战争。你可以在这里看到PHP manaual
谢谢你的回答。那么如果我遵循它,上面的变量$ resultat只能存储TRUE(1)或FALSE(0)?我必须先获取结果才能获取数组,并且能够在此之后进行print_r,那对吗? – 2015-02-09 04:17:53
@PierreGiraud对。 1代表'true',0代表'false',这意味着执行查询失败。你可以在'execute()'返回'true'后获取行。 有两个函数与从结果集中获取行有关。 'fetchAll()'一次获取所有行。 'fetch()'每次调用都会逐行读取。如果有几行或者你想一次打印所有的行,但是会消耗大量的内存,'fetchAll()'会更好。 – 2015-02-09 04:31:24