PHP类不返回PHP/MySQL数据

PHP类不返回PHP/MySQL数据,php,mysql,Php,Mysql,我正试图用下面的类从我的表中返回一条记录 class User { public function getCredits($uid) { $rs = mysql_query("select bank from `users` where id = '$uid'"); $row=@mysql_fetch_object($rs); return $row->bank; } } 我用以下命令输出这些数据 <?php pr

我正试图用下面的类从我的表中返回一条记录

class User {
   public function getCredits($uid)
   {
       $rs = mysql_query("select bank from `users` where id = '$uid'");
       $row=@mysql_fetch_object($rs);
       return $row->bank;
   }
}
我用以下命令输出这些数据

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

然而,我并没有得到任何东西,好像我的代码无法读取,而我的浏览器只显示一个白色页面

试试这个:

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

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

您没有向函数传递参数:

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


为查询传递适当的
$uid
。另外,请参阅@BenjaminGruenbaum对不推荐的扩展的评论

您没有向函数传递参数:

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

为查询传递适当的
$uid
。另外,请参阅@BenjaminGruenbaum对不推荐的扩展的评论

您有:

   $rs = mysql_query("select bank from `users` where id = '$uid'");
但是使用
->getCredits()
调用该方法,因此
$uid
将为空,并且您的查询最终将为空

 select bank from users where id = ''
假设
id
字段是一个标准的整数/自动增量,那么将不会有任何id为空的记录,因此返回一个空集。因此,fetch_对象将返回一个布尔值false以指示提取失败(没有要提取的记录),而您盲目地尝试将该布尔值false用作其他位置的数据。

您有:

   $rs = mysql_query("select bank from `users` where id = '$uid'");
但是使用
->getCredits()
调用该方法,因此
$uid
将为空,并且您的查询最终将为空

 select bank from users where id = ''

假设
id
字段是一个标准的整数/自动增量,那么将不会有任何id为空的记录,因此返回一个空集。因此,fetch_对象将返回一个布尔值false以指示提取失败(没有要提取的记录),而您盲目地尝试将该布尔值false用作其他位置的数据。

不要将
@
放入代码中。它隐藏了任何可能发生的错误。我的猜测是
mysql\u fetch\u object
抛出了一个错误,您正在抑制它。请不要使用
mysql\u*
函数。改为使用
mysqli\uu
或PDO!。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO。想要得到这条信息的人:我似乎从来没有让我感到惊讶,如果海报在这里提问之前确实为自己做了任何基本的调试,那么这些问题中有多少是不会被问到的。如果使用
$uid
、实际查询字符串或
$row
的简单
var\u dump()
,就会立即发现此问题。当代码的行为与预期不符时,您应该做的第一件事就是调试。当然,您还应该有代码来处理所有可能的边缘情况(查询失败、查询返回0行等)。不要在代码中放入
@
。它隐藏了任何可能发生的错误。我的猜测是
mysql\u fetch\u object
抛出了一个错误,您正在抑制它。请不要使用
mysql\u*
函数。改为使用
mysqli\uu
或PDO!。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO。想要得到这条信息的人:我似乎从来没有让我感到惊讶,如果海报在这里提问之前确实为自己做了任何基本的调试,那么这些问题中有多少是不会被问到的。如果使用
$uid
、实际查询字符串或
$row
的简单
var\u dump()
,就会立即发现此问题。当代码的行为与预期不符时,您应该做的第一件事就是调试。当然,您还应该有代码来处理所有可能的边缘情况(查询失败、查询返回0行等)。