【问题标题】:SQL query doesn't give any results in PHPSQL 查询在 PHP 中没有给出任何结果
【发布时间】:2013-10-19 12:07:45
【问题描述】:

我正在使用以下查询:

$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() 不返回错误。数据库已打开并在代码中进一步选择。

知道发生了什么吗?

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

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

    来自mysql_query() 的文档:

    返回的结果资源需要传递给mysql_fetch_array()等处理结果表的函数来访问返回的数据。

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

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

    【讨论】:

      【解决方案2】:

      检查$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']);
      

      【讨论】:

      • 不幸的是,这仍然不起作用。 print_r() 给出“1”作为结果。就在上面几行, $query = "SELECT count(*) FROMsurvey_ptw where ther='J'"; $result = mysql_query($query); $nr = mysql_result($result,0);工作得很好。 :-/
      猜你喜欢
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 2019-07-07
      • 2019-08-07
      • 2017-09-19
      • 2014-01-15
      相关资源
      最近更新 更多