$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是资源,布尔值在中给定,所以我的错误一定是在那个点之前的某个地方…
发布于 2014-07-07 23:45:11
您忘记了获取结果行。mysql_query函数返回结果资源,而不是行值。
您可以使用mysql_fetch_assoc、mysql_fetch_array或mysql_result函数。
$row = mysql_fetch_assoc($playerhp);
echo $row['hp'];`发布于 2014-07-07 23:49:52
如果您只请求一个变量,那么可以使用mysql_result
用法:
$playerhp = mysql_result(mysql_query("SELECT hp FROM member WHERE user = '".$_SESSION['username']."' limit 1"), 0);这应该会将hp存储在$playerhp变量中。
发布于 2014-07-08 00:03:40
如果成功,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注入。
https://stackoverflow.com/questions/24614538
复制相似问题