Как сделать, чтобы Sypex Dumper работал с MySQLi под PHP 7

Sypex Dumper 2.0.11 не работает под PHP 7.0, из-за того, что седьмой Похапе не поддерживает MySQL, а SXD поддерживает только это расширение. Исправить это не просто, а очень просто.

Во-первых нужно закомментировать эту строчку чтобы видеть ошибки. Возможно понадобится включить отображение ошибок на хостинге.

error_reporting(0);

В подтверждение того, что мы всё делаем правильно появится следующая ошибка.

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in sxd/index.php:185 Stack trace: #0 sxd/index.php(167): Sypex_Dumper->connect() #1 sxd/index.php(22): Sypex_Dumper->init(false) #2 {main} thrown in sxd/index.php on line 185

Во-вторых необходимо заменить все вхождения mysql_ на mysqli_ и где это необходимо добавить идентификатор соединения. Например вот это

mysql_query('set names utf8');

меняем на это

mysqli_query($this->mysqli, 'set names utf8');

Обратите внимание, что в функциях mysql_fetch_ идентификатор соединения дописывать не надо.

mysqli_fetch_assoc($result);

Сам идентификатор подключения создаётся следующим образом.

$this->mysqli = mysqli_connect(...);

Особое внимание следует обратить на небуферизованные запросы. Тут следует заменить mysql_unbuffered_query на mysqli_query и дописать параметр MYSQLI_USE_RESULT.

mysqli_query(..., MYSQLI_USE_RESULT);

Комментарии

Электронное письмо

Подпишись на новости сайта