如何使用php函数从我的数据库中提取数据

时间:2013-04-26 16:42:56

标签: php mysql

这就是我在主页中的内容:

$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)”

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

看起来你甚至没有建立与数据库的连接。

这是一个很好的循序渐进,它应该向您展示如何使用mysqli或pdo连接到mysql数据库,这两种方法都是更安全的方式来与mysql通信。

http://codular.com/php-mysqli

答案 1 :(得分:2)

您的代码存在许多问题:

  • 您不应该使用mysql_*个功能。它们已被弃用。如果您只是学习如何在数据库中使用PHP,请以正确的方式进行操作并使用mysqliPDO
  • 您需要确保实际连接到数据库。也许你是,而且这里没有显示,但这显然很关键。
  • 您打算从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;
}
  • 如果INSIST使用已弃用的mysql_*函数,您可能至少想养成将DB连接作为函数中的参数传递的习惯,以明确您正在使用的数据库连接。

做类似的事情:

mysql_query($strQry, $dbConn);