得到行数 - mysqli

时间:2012-01-16 19:38:34

标签: php mysql mysqli

我正在尝试此代码,但我想知道此查询的结果数量是多少。如果在mysql控制台中执行相同的查询,我得到4个结果,但是使用此代码我得到0行。 获取行数的正确方法是什么?

 function check_oferta_existe($db, $id, $id_oferta) {
            $sql = $db -> prepare("
            SELECT COUNT(offer)
            FROM offer
            WHERE company_users_id_user1 = ? AND offer = ? AND state = 0
            ");

            $sql -> bind_param('is', $id, $oferta);
            $sql -> execute();
            $sql -> fetch();
            $sql->store_result();
            $rows = $sql->num_rows;

            var_dump($rows); // 0, should be 4
            if ($rows == 1) {
                return true;
            }
            else {
                return false;
            };
        }

2 个答案:

答案 0 :(得分:3)

$sql->fetch()不是函数 - 请尝试$sql->fetch_all()

那应该为您提取所有行,然后$sql->num_rows变量应该是正确的。

答案 1 :(得分:3)

我在代码中看到两个错误。当你这样做时:

$sql -> bind_param('is', $id, $oferta);

你使用$oferta但似乎(查看函数参数)var应该是$id_oferta

此外,在else的结束括号后,你有一个不应该有分号的分号。