тел.: 8(961)008-77-55

bitrix logoПри развертывании резервной копии сайта на Bitrix у себя на хостинге увидел ошибку:

Fatal error: Call to undefined function Bitrix\Main\DB\mysql_connect() in ... on line 40

Как оказалось, на предыдущем хостинге использовался PHP 5.x, а на моем PHP 7.0, а mysql_connect "... устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL.

В Bitrix нужно включить использование mysqli_connect следующим способом (подсказал знающий человек, сам бы долго разбирался)

 

  1. В конце файла \bitrix\php_interface\dbconn.php , перед ?>, нужно добавь строку define("BX_USE_MYSQLI", true);
  2. В файле \bitrix\.settings.php, в настройках
    'connections' =>
    array (
    'value' =>
    array (
    'default' =>
    array (
    'className' => '\\Bitrix\\Main\\DB\\MysqlConnection',
    'host' => 'localhost',
    'database' => 'dbName',
    'login' => 'root',
    'password' => '123456',
    ),
    ),
    ),
    Заменить на 'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',

Все заработало, Bitrix "завелся")

Проблема описана еще в 2014 году на форуме Bitrix, и может возникнуть на старых проектах, в обновлении ядра 14.5.2 добавлена полная поддержка mysqli. Включать mysqli нужно отдельно для старого и нового ядра.

Добавить комментарий