2013-05-21 52 views
0

我试着从我的桌子下面的类返回一个记录......PHP类不返回数据的PHP/MySQL

class User { 
    public function getCredits($uid) 
    { 
     $rs = mysql_query("select bank from `users` where id = '$uid'"); 
     [email protected]_fetch_object($rs); 
     return $row->bank; 
    } 
} 

I输出这些数据与以下...

<?php print $User->getCredits(); ?> 

但是我没有给出任何东西,就好像我的代码不能被读取,我的浏览器只显示一个白页?

+2

不要在代码中放置@@。它隐藏了可能发生的任何错误。我的猜测是'mysql_fetch_object'正在抛出一个错误,你正在压制它。 – Halcyon

+1

,请不要使用'mysql_ *'功能。而是使用'mysqli_'或PDO! – DaGardner

+1

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护[并且被正式弃用](http://j.mp/XqV7Lp)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。想要这样的信息的人:https://gist.github.com/MadaraUchiha/3881905 –

回答

0

试试这个:

class User { 
    public function getCredits($uid) 
    { 
     $rs = mysql_query("select bank from `users` where id = '".$uid."'"); 
     $row= @mysql_fetch_array($rs); 
     return $row['bank']; 
    } 
} 
2

你是不是传递函数中的参数:

<?php print $User->getCredits(); ?> 

它传递正确的$uid的查询。另请参阅@BenjaminGruenbaum对已弃用的扩展的评论。

3

您有:

$rs = mysql_query("select bank from `users` where id = '$uid'"); 

但调用该方法->getCredits(),所以$uid将是一个零和您的查询最终被

select bank from users where id = '' 

假设id场是标准整数/ auto_increment,会有NO有空白的记录,所以你找回空集。因此,fetch_object将返回一个布尔型false来表示提取失败(无记录提取),并且您盲目地尝试在其他地方将该布尔值作为您的数据使用。