MySQLi没有从JOIN预处理语句返回结果

时间:2010-03-05 05:07:50

标签: php mysql join mysqli

function fullJoinTest()
{
    $con = ModelBase::getConnection();
    $sql = "SELECT airline, airport
            FROM airlines
            LEFT JOIN airports on airlines.icao_code = airports.icao_code";
    $query = $con->prepare($sql) or die("Error preparing sql in Search (test) ");

    $query->execute() or die("Error executing query in Search (test) ");

    error_log($query->num_rows);
}

现在它不断返回0表示它返回的行数。当我将相同的查询插入phpMyAdmin时,它返回预期的结果集。

MySQLi与JOIN相处得好吗?还有另一种解决方法吗?最终它将有更多的连接和一些WHERE子句。我想继续使用准备好的陈述。

1 个答案:

答案 0 :(得分:2)

您尚未阅读行,因此不知道生成了多少行。 调用$ query-> store_result();将行缓冲到内存中。

http://www.php.net/manual/en/mysqli-stmt.num-rows.php

http://www.php.net/manual/en/mysqli-stmt.store-result.php