SQL查询不会在PHP中给出任何结果

时间:2013-10-19 12:07:45

标签: php mysql sql

我使用以下查询:

$query = "SELECT (SELECT count(*) FROM survey_ptw WHERE erfh= '0') AS F01,
                 (SELECT count(*) FROM survey_ptw WHERE erfh='10') AS F02,
                 (SELECT count(*) FROM survey_ptw WHERE erfh='50') AS F03";
$result = mysql_query($query);
print sprintf('Erf: <table><tr><td>none</td><td>%s</td></tr><tr><td>more</td><td>%s</td></tr></table>', $F01,$F02);

当我在phpMyAdmin中执行上述查询时,它会使用正确的结果值很好地显示变量。但是在PHP中也一样,没有显示结果(空字符串)! mysql_errno()和mysql_error()不会返回错误。数据库已经打开并在代码中进一步选择。

知道发生了什么事吗?

2 个答案:

答案 0 :(得分:1)

因为你没有对结果做任何事情。

来自mysql_query()的文档:

  

返回的结果资源应该传递给mysql_fetch_array(),以及其他用于处理结果表的函数,以访问返回的数据。

因此,要检索结果,您可以使用while循环,如下所示:

while ($row = mysql_fetch_assoc($result)) {
    # code...
}

答案 1 :(得分:1)

检查$res=mysql_fetch_assoc($result);然后print_r();检查结果。它会起作用。

$query = "SELECT (SELECT count(*) FROM survey_ptw WHERE erfh= '0') AS F01,
                 (SELECT count(*) FROM survey_ptw WHERE erfh='10') AS F02,
                 (SELECT count(*) FROM survey_ptw WHERE erfh='50') AS F03";
$result = mysql_query($query);
$res=mysql_fetch_assoc($result);
$res=$res[0];
sprintf('Erf: <table><tr><td>none</td><td>%s</td></tr><tr><td>more</td><td>%s</td></tr></table>', $res['F01'],$res['F02']);