v1.5.5. Оповещение о mysqli_fetch_array() в файле DB.php

  • 4 Ответов
  • 262 Просмотров

Виктор

  • Сообщений: 3
    • Просмотр профиля
    • Просто сайт
Доброго времени суток. Столкнулся со одной проблемой.
Свежеустановленный Danneo на главной странице выдаёт:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in /var/www/html/melochi.kz/core/classes/DB.php on line 214
Установка CMS была вполне стандартной, но первый вход в админпанель выдал следующее сообщение:
Цитировать
MySQL Debugging - Danneo CMS 1.5.5
SQL.q
    SHOW TABLES FROM site
MySQL.e
    You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ite' at line 1 (прошу заметить - первую букву названия базы данных он проглотил...)
MySQL.e.№
    1064
PHP
    7.3.8
Data
    11.09.2019 20:25
Script
    /admin/index.php?dn=index&ops=b8d1602a33a340333b75efd1abb62e1a
Самое интересное - при появлении данной ошибки в админпанели, и сам сайт и админпанель остаётся работоспособными.
Данная ошибка в админпанели появляется один раз и после обновления (F5) страницы исчезает совсем. В следующий раз её можно добиться только вычистив каталог "/cache".

    Данные о программном обеспечении сервера:
    • Версия PHP - 7.3.8
    • Сервер баз данных - MariaDB. Версия 10.2.26

А теперь сам вопрос:
Есть ли возможность без проблем работать на MariaDB и если есть, то как исправить предупреждение на главной
"Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in /var/www/html/melochi.kz/core/classes/DB.php on line 214"?
Всем спасибо, всем бобра!

Neon

  • Сообщений: 700
    • Просмотр профиля
    • Danneo CMS
Re: v1.5.5. Оповещение о mysqli_fetch_array() в файле DB.php
« Ответ #1 : 12 Сентября 2019, 11:28:22 »
Локально данная БД тестировалась, проблем не было.
Возможно, специфическая сборка, и есть предположение, что ей не нравится названия таблиц без экранирования обратными апострофами (backtics).
В последней версии Danneo CMS все названия полей в запросах экранируются автоматом, кроме имен таблиц.
В аттаче файлы, попробуйте заменить.

Лично мне, не нравится гоняться за клонами.
MariaDB хороша для тестов и экспериментов, для рабочих проектов, все же, лучше использовать её старшую сестру "My".
Кроме того, заявленная разработчиком "полная совместимость", это только в теории.
На практике, может возникнуть неопределенное количество подводных камней.
DANNEO ™

Виктор

  • Сообщений: 3
    • Просмотр профиля
    • Просто сайт
Re: v1.5.5. Оповещение о mysqli_fetch_array() в файле DB.php
« Ответ #2 : 13 Сентября 2019, 14:31:14 »
Доброго времени суток. К сожалению исправление ничего не изменило.
А каковы будут последствия, если данный кусочек кода закомментировать?
 	 * Функция обрабатывает ряды результата запроса,
* возвращая ассоциативный массив, численный массив или оба
*/
public function fetchrow($query = 0, $cache = FALSE)
{
if ($cache AND $this->initcache == TRUE)
{
return array_shift($this->result);
}
/** else
{
return mysqli_fetch_array($query);
}      **/
}
(Строки с 212 по 215)
Я понимаю, что это костыль и проблемы не решает.
Но всё же меня очень интересуют возможные последствия.
Всем спасибо, всем бобра!

Neon

  • Сообщений: 700
    • Просмотр профиля
    • Danneo CMS
Re: v1.5.5. Оповещение о mysqli_fetch_array() в файле DB.php
« Ответ #3 : 13 Сентября 2019, 20:19:22 »
Нет, так делать нельзя, это повлияет на всю работу сайта.

Проверено:
PHP 7.3
MariaDB 10.2
Установка Danneo CMS 1.5.5 с нуля и дальнейшая работа, все корректно, без ошибок.

Выводы делайте сами.
Возможная проблема в сборке сервера.
DANNEO ™

Виктор

  • Сообщений: 3
    • Просмотр профиля
    • Просто сайт
Re: v1.5.5. Оповещение о mysqli_fetch_array() в файле DB.php
« Ответ #4 : 15 Сентября 2019, 10:48:19 »
Доброго времени суток. Благодарю за ответы. Пойду задавать вопросы своему хостеру.

P.S. Развернул LAMP на Rasberry PI 3 с тем же набором ПО - всё работает стабильно.
Всем спасибо, всем бобра!