首页 文章

PHP PDO mysql计数行返回

提问于
浏览
4

对此有很多疑问,我做了很多研究 . 但是,我仍然想知道我是否正确行事 .

这是我的陈述(我简化了):

try {
        $stmt = $pdc_db->prepare("SELECT * FROM table WHERE color = :color"); 
        $stmt->bindValue(':color', $selected_color);
        $stmt->execute(); 
        $color_query = $stmt->fetchAll();
    } catch(PDOException $e) { catchMySQLerror($e->getMessage()); }

现在,我使用以下内容来查看是否返回了任何结果:

if (count($color_query) > 0) {

这样可行,但是...... SELECT语句只返回一个结果 . 所以现在要访问结果中的东西,我使用的是$ color_query [0] [colorname] . 我知道这是因为我使用fetchAll(),但我真的想要使用fetch()

但是,如果我只使用fetch(),我将失去执行count()的能力,这对我来说非常简单 . 我知道我可以做一个单独的查询并检查SELECT COUNT(*)的结果,但这似乎更多工作(为每个设置两个单独的查询)

必须有一种方法,使用PHP中的PDO与mySQL,检查fetch()是否返回了结果?

2 回答

  • 4

    在execute()之后$stmt->rowCount(),但不能与所有数据库一起使用...尝试使用MySQL,看看你得到了什么 .

  • 0

    您可以使用 fecthfecth 将返回false,如果没有结果返回 .

    if ($row = $stmt->fetch()) {
         //get the first row of the result.
         //....
    }
    

相关问题