从mysql数据库中读取特定数据

时间:2014-07-07 15:43:03

标签: php mysql

$playerhp = mysql_query("SELECT hp FROM member WHERE user = '".$_SESSION['username']."'");
echo "hp:".$playerhp;

这可能是这个董事会有史以来最愚蠢的问题,但我现在试了好几个小时,却找不到解决办法......

我想要做的是将变量$ playerhp定义为我的数据库中的数字,以便我以后可以使用它但是在康复状态下我什么都没回来(eco只是为了测试$ playerhp目前正在筹备的所有指南现在都会继续使用$ row和构建一个数组,但是当我得到一个数字时,我需要一个数组呢?

PS: 当我添加mysql_fetch_assoc或mysql_fetch_array时,我收到错误消息:mysql_fetch_array()期望参数1是资源,布尔值在 所以在那之前我的错误肯定是在某个地方......

3 个答案:

答案 0 :(得分:0)

您忘记了获取结果行。 mysql_query函数返回结果资源,而不是行值。

您可以使用mysql_fetch_assocmysql_fetch_arraymysql_result功能。

$row = mysql_fetch_assoc($playerhp);
echo $row['hp'];`

P.S。:不要使用mysql_扩展名,因为它已被弃用。请改用PDOMysqli

答案 1 :(得分:0)

如果您只是请求一个变量,那么您可以使用mysql_result

用法:

$playerhp = mysql_result(mysql_query("SELECT hp FROM member WHERE user = '".$_SESSION['username']."' limit 1"), 0);

这应该将hp存储在$playerhp变量中。

答案 2 :(得分:0)

mysql_query()函数将在成功时返回resource。因此,在获取资源之后,您需要在该资源变量上使用php mysql_fetch_assoc(),mysql_fetch_array()等来获取行数据。之后,您可以将它们用作常规变量。

所以这里:

$row = mysql_query("SELECT hp FROM member WHERE user = '".$_SESSION['username']."'");
$playerhp = mysql_fetch_assoc( $row["hp"] );

但是为了开发新的php应用程序,请不要使用mysql扩展,因为从PHP 5.5.0开始不推荐使用此扩展,并且将来会删除它。相反,应该使用MySQLi或PDO_MySQL扩展。

了解有关mysqli here

的更多信息

详细了解PDO here

与mysql扩展相比,mysqli和pdo将提供更多安全性。在mysql查询中使用过滤数据时,尝试使用过滤数据以防止sql注入。