Присвоение PDO-> fetchAll переменной внутри условия IF возвращает false - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть устаревший код в проекте, над которым я работаю.

Это выглядело так (немного упрощено для большей читабельности):

$sql = "SELECT something
        FROM table
        WHERE something = 'something'";

$st = $this->dbPdo->prepare($sql);
$st->execute();

if ($rows = $st->fetchAll(\PDO::FETCH_ASSOC)) {
    // Some code that wasn't executing for some reason on 
     // production, but was working on live
}

На моей локальной копиипроект этот код работал.Но на производстве нет.Когда я изменил это на это для отладки того, что находится внутри $ строк, оно начинает работать.

$sql = "SELECT something
        FROM table
        WHERE something = 'something'";

$st = $this->dbPdo->prepare($sql);
$st->execute();

$rows = $st->fetchAll(\PDO::FETCH_ASSOC); // rows is array with 15 elements
error_log( 'rows: ' . json_encode($rows) );

if ($rows) {
    // Now this code is working
}

Кто-нибудь может объяснить мне, почему?Больше ничего не изменилось.

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