Kohana ORM Функция find_all pk () возвращает NULL в PHP 5.6.21

У меня есть следующий код, он работал хорошо в течение многих лет, но с тех пор, как я обновил до PHP 5.6.21, его возвращаемое значение NULL.

$model = new Model_Status ();
$results = $model->find_all ();
foreach ( $results as $result ) {
echo $result->pk ();
}

Когда я отображаю $ result на сервере, работающем под управлением PHP 5.6.20, данные строк из mysql загружаются в $ _original_values, $ _primary_key_value и $ _changed пустые, но в PHP 5.6.21 $ _primary_key_value и $ _original_values ​​пустые, а _changed имеет значения столбцов БД

echo Debug::vars($result)
//php 5.6.20
protected _object => array(6) (
"id" => string(1) "1""name" => string(4) "Live""code" => string(3) "401""message" => string(12) "site is live""created" => NULL
"modified" => NULL
)
protected _changed => array(0)
protected _original_values => array(6) (
"id" => string(1) "1""name" => string(4) "Live""code" => string(3) "401""message" => string(12) "site is live""created" => NULL
"modified" => NULL
)
//php 5.6.21
protected _object => array(6) (
"id" => string(1) "1""name" => string(4) "Live""code" => string(3) "401""message" => string(12) "site is live""created" => NULL
"modified" => NULL
)
protected _changed =>  array(4) (
"id" => string(2) "id""name" => string(4) "name""code" => string(2) "code""message" => string(7) "message")
protected _original_values => array(0)

0

Решение

Эта проблема была вызвана обновлением в PHP 5.6.21, такое же поведение в PHP 7.0.5
mysqli_fetch_object ИЛИ ЖЕ mysqli_result::fetch_object поведение — это изменение, и его вызывающий конструктор перед присвоением значений, поэтому эти значения отображаются как измененные значения для незагруженного объекта в Kohana ORM.

Вот ссылка на вопрос о Kohana ORM
Вот ссылка на отчет об ошибках PHP

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]