【问题标题】:query result wont be echoed查询结果不会被回显
【发布时间】:2012-05-03 02:23:43
【问题描述】:

我有一个功能。在那个函数中有一个选择查询。另一个查询应该返回第一个查询中的结果数。我有这个代码:

    function name ($f){  
     global $db;
     ...
     $results = "SELECT `a` FROM `b` WHERE $where"; 
     $results_num = ($query = mysqli_query($db, $results)) ? mysqli_num_rows($results) : 0; 

     echo $results;
     echo $results_num;
    }

会回显:

SELECT `a` FROM `b` WHERE `keywords` LIKE '%abc%'0 

什么是 $results 而不是 $results_num?我不明白为什么不会显示echo $results_num 以及为什么$results 末尾有0 所以如果有人可以给我建议解决这个问题,我真的很感激。非常感谢。

【问题讨论】:

  • 不应该是mysqli_num_rows($query)吗?

标签: php mysql function mysqli echo


【解决方案1】:

$results_num 为 0。$results 为 - SELECT a FROM b WHERE keywords LIKE '%abc%' 试试这个

echo "Results is $results <br />";
echo "Results_num is $results_num <br />";

一切都会显露出来的:)

【讨论】:

    【解决方案2】:

    $results 是您的查询字符串。你不能像你正在做的那样将字符串传递给mysqli_num_rows(),它需要mysqli_query()返回的结果集标识符。在您的情况下,它是 $query(您可能想更改变量名以使其更有意义,顺便说一句)。

    【讨论】:

      【解决方案3】:

      首先,$results_num 为零并且正在输出(这就是为什么在输出末尾有一个0)。那是因为这段代码是错误的:

      $results_num = ($query = mysqli_query($db, $results)) ? mysqli_num_rows($results) : 0; 
      

      稍微说一下:

      $query = mysqli_query($db, $results);
      $results_num = $query ? mysqli_num_rows($results) : 0;
      

      而第二行实际上应该是:

      $results_num = $query ? mysqli_num_rows($query) : 0;
      

      您需要将查询句柄传递给mysqli_num_rows(),而不是 SQL。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-04
        • 2013-01-19
        • 1970-01-01
        • 2012-05-06
        • 1970-01-01
        • 2021-07-31
        相关资源
        最近更新 更多