MySQLi не возвращает результаты из подготовленного оператора JOIN - PullRequest
2 голосов
/ 05 марта 2010
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 Ответ

2 голосов
/ 05 марта 2010

Вы еще не прочитали строки, поэтому он не знает, сколько было произведено. вызов $ 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...