如何使用PHP的PDO检查数据库查询返回的结果

时间:2012-09-14 17:37:16

标签: php pdo

如何在PHP中使用PDO检查我的结果集是否为空?

$SQL = "SELECT ......... ORDER BY lightboxName ASC;";
$STH = $DBH->prepare($SQL);
$STH->bindParam(':member_id', $member_id);
$STH->execute();
$STH->setFetchMode(PDO::FETCH_ASSOC);

while($row = $STH->fetch()) {
    $lightbox_name = $row['lightboxName'];
    $lightbox_id = $row['lightboxID'];
    echo '<option value="'.$lightbox_id.'">'.$lightbox_name.'</option>';
}

我曾经这样做过:

$result = mysql_query("SELECT ...... ORDER BY lightboxName ASC;");
if(!$result) { echo 'No results found!'; }

但是刚刚开始使用PDO和准备好的语句并且对$STH进行检查似乎没有按预期工作 - 它总是有价值的!

2 个答案:

答案 0 :(得分:1)

只需转储有关变量的信息。

var_dump($STH)

修改

我刚才有了问题。有rowCount()功能。只需使用$STH->rowCount();进行行计数,然后进行比较。

答案 1 :(得分:0)

好的,这里是它确实有效的代码,最后经过几个小时的浏览和混合匹配,这里的一些答案实际上会在你的select语句中返回一个计数。 SQL显然是select语句 $ username1是用户名文本框的帖子。 $ password1与用户名设置相同。 除此之外,您应该拥有使其工作所需的一切,只需用您的变量代替我的变量。我希望这可以节省一些人的时间,因为我搜索了一段时间试图得到我想要的东西。 这个解决方案适用于你有一个select语句,你希望能够继续或停止它返回一些东西。

SQL = 'SELECT * from Users WHERE Username = :Username AND Password = :Password';
STH = $conn->prepare($SQL);
STH->bindParam(':Username', $username1);
STH->bindParam(':Password', $password1);
STH->execute();
STH->setFetchMode(PDO::FETCH_ASSOC);


row_count = $STH->rowCount();