始终为NULL返回SQL中的值

时间:2012-09-13 07:11:07

标签: php sql

我有以下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语句??

1 个答案:

答案 0 :(得分:3)

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

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

而且,从内存来看,我认为您应该在尝试从中获取之前绑定变量。再说一次,如果你的PHP足够先进,我想它可以做某种形式的时间操作,但我不会赌钱。


对不起,这是澳大利亚人的幽默,但是如果你检查一下fetch page,它会说清楚:

  

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

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