繁体   English   中英

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

[英]How do I pull data from the my database using a php function

这是我主页上的内容:

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

任何帮助将不胜感激!

看来您甚至都没有与数据库建立连接。

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

http://codular.com/php-mysqli

您的代码有很多问题:

  • 您不应该使用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;
}
  • 如果您要使用不推荐使用的mysql_*函数进行mysql_* ,则可能至少要养成将DB连接作为函数中的参数传递的习惯,以明确使用的是哪个DB连接。

因此,请执行以下操作:

mysql_query($strQry, $dbConn);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM