我正在尝试此代码,但我想知道此查询的结果数量是多少。如果在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;
};
}
答案 0 :(得分:3)
$sql->fetch()
不是函数 - 请尝试$sql->fetch_all()
。
那应该为您提取所有行,然后$sql->num_rows
变量应该是正确的。
答案 1 :(得分:3)
我在代码中看到两个错误。当你这样做时:
$sql -> bind_param('is', $id, $oferta);
你使用$oferta
但似乎(查看函数参数)var应该是$id_oferta
。
此外,在else
的结束括号后,你有一个不应该有分号的分号。