0

我有以下 SQL 函数,并且我在 mysqli_stmt_bind_result 中删除了 $row。

//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 语句?

4

1 回答 1

3

你为什么$row在一个地方使用(绑定)并返回$rows

你不认为这可能是个坏主意,除非你的 PHP 解释器我见过的要先进得多,并且能够自动关联单数和复数变量名 :-)

而且,从记忆中,我认为您可能应该在尝试从中获取变量之前绑定变量。同样,如果您的 PHP 足够先进,我想它可以进行某种形式的时间操纵,但我不会赌钱。


抱歉,这是澳大利亚的幽默,但如果您检查fetch page,它会非常清楚地说明:

请注意,在调用 mysqli_stmt_fetch() 之前,应用程序必须绑定所有列。

我现在假设这个row/rows问题只是你的问题中的一个错字。如果不是,那么这也需要修复。

于 2012-09-13T07:13:21.707 回答