2012-09-13 107 views
0

我有以下SQL函数,并且我已经放弃了mysqli_stmt_bind_result中的$行。SQL中始终为NULL返回值

//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。 为什么?由于读取声明?

回答

3

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

难道你不认为这可能是一个坏主意,除非你的PHP解释器是比我见过的那些更先进,并能自动单数和复数变量名:-)

关联

而且,从内存来看,我认为你应该绑定变量,然后试图从它们中获取数据。再说一次,如果你的PHP足够先进,我想它可以做某种形式的暂时操纵,但我不会赌钱。


对不起,这是澳大利亚的幽默未来通过,但如果检查fetch page,它规定很清楚:

注意,所有列必须由应用程序调用mysqli_stmt_fetch之前的约束()。

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

+0

是的,你是对的我愚蠢。 '='' – Samuel

+0

@ user1660416,不愚蠢,_永不笨。我们活着,我们学习:-) – paxdiablo

+0

我正在关注flex示例代码。但错过了最重要的部分。 – Samuel