我有以下SQL函数,并且我在mysqli_stmt_bind_result中对$行进行了delare。
//get the user number per month
public function chartwaitinguservsproduct(){
$stmt = mysqli_prepare($this->connection,
"select
(Select COUNT(*) from reusematching.waitinglist_product) as COUNTP,
(Select COUNT(*) from reusematching.waitinglist_user) as COUNTU;
");
$this->throwExceptionOnError();
mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();
mysqli_stmt_fetch($stmt);
mysqli_stmt_bind_result($stmt, $row->COUNTP, $row->COUNTU);
mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);
return $rows;
}
但无论我如何更改数据库,$ rows始终为NULL。 为什么?因为fetch语句??
答案 0 :(得分:3)
为什么在一个地方(绑定)使用$row
并返回$rows
?
你不觉得这可能是一个坏主意,除非你的PHP解释器远比我见过的更先进,并且能够自动关联单数和复数变量名称: - )
而且,从内存来看,我认为您应该在尝试从中获取之前绑定变量。再说一次,如果你的PHP足够先进,我想它可以做某种形式的时间操作,但我不会赌钱。
对不起,这是澳大利亚人的幽默,但是如果你检查一下fetch page,它会说清楚:
请注意,在调用mysqli_stmt_fetch()之前,所有列都必须由应用程序绑定。
我现在假设row/rows
问题只是你问题中的错字。如果不是,那么也需要修复。