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行等)。