这就是我在主页中的内容:
$foo = new Foo();
$strQry=$foo->Client();
$user_data=mysql_fetch_object($user_res);
echo $user_data->clientid;
这就是我在课堂文件中的内容:
class Foo
{
function Client()
{
$strQry = "SELECT clientid FROM users";
$user_res = mysql_query($strQry) or die("Unable to select, Error: ".mysql_error());
return $user_res;
}
}
我不擅长使用PHP的类和函数,因此我收到此错误“无法选择,错误:访问被拒绝用户'nobody'@'localhost'(使用密码:NO)”
非常感谢任何帮助!
答案 0 :(得分:2)
看起来你甚至没有建立与数据库的连接。
这是一个很好的循序渐进,它应该向您展示如何使用mysqli或pdo连接到mysql数据库,这两种方法都是更安全的方式来与mysql通信。
答案 1 :(得分:2)
您的代码存在许多问题:
mysql_*
个功能。它们已被弃用。如果您只是学习如何在数据库中使用PHP,请以正确的方式进行操作并使用mysqli
或PDO
。Client()
方法调用中返回数据库结果。但是你没有使用你将结果返回的变量。此代码:
$strQry=$foo->Client();
$user_data=mysql_fetch_object($user_res);
应该是:
$strQry=$foo->Client();
$user_data=mysql_fetch_object($strQry);
因为$strQry
获取结果集资源。
mysql_fetch_object()
一次。根据您的查询,结果集中可以包含任意数量的行。如果你想要所有这些,你需要遍历结果集并在每一行上调用mysql_fetch_object()
。也许是这样的:
$user_data= array();
while($row = mysql_fetch_object($strQry)) {
$user_data[] = $row;
}
mysql_*
函数,您可能至少想养成将DB连接作为函数中的参数传递的习惯,以明确您正在使用的数据库连接。 做类似的事情:
mysql_query($strQry, $dbConn);