Php mysql\u query()为FALSE,但mysql\u error()为空

Php mysql\u query()为FALSE,但mysql\u error()为空,php,mysql,mysql5,Php,Mysql,Mysql5,我正在运行一个非常复杂的查询,它是由一些内部查询构建的。查询的开头包含SQL\u CALC\u FOUND\u行。不幸的是,只能获取行数(我无法获取结果本身) 我决定去掉SQL\u CALC\u FOUND\u行,运行两个不同的查询,一个计算行数,另一个获取行数。在本例中,我可以检索结果,但COUNT(*)查询的行为异常。我就是这么做的: 执行计数(*)查询 mysql_query()返回FALSE mysql_error()直接在COUNT(*)查询返回空字符串后运行 代码是: $sqlCou

我正在运行一个非常复杂的查询,它是由一些内部查询构建的。查询的开头包含SQL\u CALC\u FOUND\u行。不幸的是,只能获取行数(我无法获取结果本身)

我决定去掉SQL\u CALC\u FOUND\u行,运行两个不同的查询,一个计算行数,另一个获取行数。在本例中,我可以检索结果,但COUNT(*)查询的行为异常。我就是这么做的:

  • 执行计数(*)查询
  • mysql_query()返回FALSE
  • mysql_error()直接在COUNT(*)查询返回空字符串后运行
  • 代码是:

    $sqlCount = "SELECT COUNT(*) AS c FROM ... WHERE ...";
    $resultCount = mysql_query($sqlCount);
    echo "RESULT COUNT: " . ($resultCount === FALSE) . "<br />";//it returns 1(true)
    echo mysql_error(); //it returns nothing (blank string)
    
    $sqlCount=“选择COUNT(*)作为c FROM…WHERE…”;
    $resultCount=mysql\u查询($sqlCount);
    echo“结果计数:”。($resultCount==FALSE)。“
    ”//它返回1(true) echo mysql_error()//它不返回任何内容(空白字符串)
    另外,mysql\u errno()返回0


    你能找到这种奇怪情况的合理解释吗?

    我看不出你的代码有任何错误。请尝试将mysql\u查询行更改为

     $resultCount = mysql_query($sqlCount) or die(mysql_error() ." <-- There was an error when proccessing query");
    

    $resultCount=mysql\u query($sqlCount)或die(mysql\u error()。“我看不到您的代码中有任何错误。请尝试将您的mysql\u查询行更改为

     $resultCount = mysql_query($sqlCount) or die(mysql_error() ." <-- There was an error when proccessing query");
    

    $resultCount=mysql\u query($sqlCount)或die(mysql\u error()。”这很奇怪,因为带有SQL\u CALC\u FOUND\u行的select子句返回行,额外的查询将返回行数。如果使用

    $result = mysql_query('SELECT SQL_CALC_FOUND_ROWS * from table');
    $total = mysql_query('SELECT FOUND_ROWS()');
    process $result.
    

    您应该不会遇到任何问题。

    这很奇怪,因为带有SQL\u CALC\u FOUND\u ROWS的select子句会返回行数,附加查询将返回行数。如果使用

    $result = mysql_query('SELECT SQL_CALC_FOUND_ROWS * from table');
    $total = mysql_query('SELECT FOUND_ROWS()');
    process $result.
    

    您应该不会有任何问题。

    请您填写…空白,然后再试一次好吗

    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', true);
    
    $mysql = mysql_query('..', '..', '..') or die(mysql_error());
    mysql_select_db('...', $mysql) or die(mysql_error($mysql));
    
    echo '<pre>Debug: mysql_get_server_info='; var_dump(mysql_get_server_info($mysql)); echo "</pre>\n";
    echo '<pre>Debug: mysql_get_client_info='; var_dump(mysql_get_client_info()); echo "</pre>\n";
    
    $sqlCount = "SELECT COUNT(*) AS c FROM ... WHERE ...";
    echo '<pre>Debug: sqlCount='; var_dump($sqlCount); echo "</pre>\n";
    $resultCount = mysql_query($sqlCount, $mysql);
    echo '<pre>Debug: resultCount='; var_dump($resultCount); echo "</pre>\n";
    echo '<pre>Debug: mysql_error='; var_dump(mysql_error($mysql)); echo "</pre>\n";
    echo '<pre>Debug: mysql_errno='; var_dump(mysql_errno($mysql)); echo "</pre>\n";
    

    请您填写…空白,然后再试一次好吗

    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', true);
    
    $mysql = mysql_query('..', '..', '..') or die(mysql_error());
    mysql_select_db('...', $mysql) or die(mysql_error($mysql));
    
    echo '<pre>Debug: mysql_get_server_info='; var_dump(mysql_get_server_info($mysql)); echo "</pre>\n";
    echo '<pre>Debug: mysql_get_client_info='; var_dump(mysql_get_client_info()); echo "</pre>\n";
    
    $sqlCount = "SELECT COUNT(*) AS c FROM ... WHERE ...";
    echo '<pre>Debug: sqlCount='; var_dump($sqlCount); echo "</pre>\n";
    $resultCount = mysql_query($sqlCount, $mysql);
    echo '<pre>Debug: resultCount='; var_dump($resultCount); echo "</pre>\n";
    echo '<pre>Debug: mysql_error='; var_dump(mysql_error($mysql)); echo "</pre>\n";
    echo '<pre>Debug: mysql_errno='; var_dump(mysql_errno($mysql)); echo "</pre>\n";
    

    请发布代码以更恰当地帮助您。请向我们展示一些实际的PHP代码。$resultCount=mysql\u fetch\u数组(mysql\u query($sqlCount));echo“RESULT COUNT:”。$resultCount[0];您是否首先使用了
    mysql\u connect
    ?是否启用了完整的错误报告?许多PHP函数在满足错误条件时往往会发出警告,并且它们通常提供无法在其他任何地方收集的信息。请发布代码以帮助您更恰当地使用。请向我们展示一些实际的PHP代码。$resultCount=mysql\u fetch\u array(mysql_query($sqlCount));echo“RESULT COUNT:”$resultCount[0];您是否首先使用
    mysql_connect
    ?是否启用了完整的错误报告?许多PHP函数在满足错误条件时往往会发出警告,它们通常提供无法在其他任何地方收集的信息。