mysqli connect php 7 не работает
Админу.Ру
Библиотека вебмастера по созданию и продвижению сайта
Ошибка 500 после перевода сайта на PHP 5.5 или PHP 7
Проблема, с которой сталкиваются многие программисты после перевода площадки на современную версию PHP, — вероятная полная или частичная потеря работоспособности программного обеспечения на одном или нескольких сайтах площадки. Не предавайтесь панике, всё решаемо!
Использование функций mysql_connect(), mysql_select_db(), mysql_query() и т.д.
В PHP 7 разработчики отказались от расширения mysql, все использования функций расширения приводят к фатальной ошибке (Call to undefined function).
Использование функций mysql_connect(), mysql_select_db(), mysql_query() и т.д.
Как заменить неработающие функции mysql_connect(), mysql_select_db(), mysql_query()? Ошибка «PHP Fatal Error: Call to undefined function»
Решения проблемы есть и даже не одно!
Есть достойная альтернатива mysql — расширение mysqli. Функции расширения соответствуют старым (большая часть):
1. Если у вас небольшой проект, вам будет несложно через поиск найти несколько строк в коде с функциями, начинающимися с «mysql_*» расширения mysql. Вручную отредактируйте код, заменив «mysql_*» на «mysqli_*».
2. Если у вас большой проект или вы очень активно пользовались функциями расширения mysql, вам будет непросто поменять все упоминания устаревших функций. В таком случае вам поможет следующее решение. Создайте PHP-файл, в котором определите функции с именами исключённых, которые будут ссылаться на соответствующие функции расширения mysqli.
Пример кода новой библиотеки. Не надо перечислять все функции расширения, это излишний перфекционизм. Создайте только те, которые встречаются в ваших проектах.
Данный код сохраните в файл, назовите его, например, deletedmysql.php и сохраните в корне сайта (на одном уровне с index.php главной страницы сайта).
В каждый PHP-файл, в котором встречается ошибка, добавьте строку в самое начало файла, после открывающего кода:
Совсем идеально будет добавить проверку на версию PHP, так как при переезде на другую площадку или понижении версии PHP до 5.x вы получите ошибку PHP: Fatal error: Cannot redeclare…
Маленький лайфхак для тех, кому понравился способ 2. Используйте это решение только в качестве временной заглушки. При удобном случае перепрограммируйте код на использование новых функций.
PHP Fatal error: Uncaught Error: Call to undefined function split()
В PHP 7 функция spit() — разбиение строки на массив по регулярному выражению, — была исключена. Альтернатива есть, функции preg_split(), str_split(), explode().
PHP7 Fatal error: Uncaught Error: Call to undefined function split()
В приведённом примере разбить командную строку можно любой функцией. Лично я предпочитаю explode().
How can I enable the MySQLi extension in PHP 7?
I have installed PHP 7 and MySQL 5.5.47 on Ubuntu 14.04 (Trusty Tahr).
I have checked installed extension using:
I am not able to see the MySQLi extension using phpinfo() either. How can I enable/install MySQLi extension in PHP 7?
That’s why I cannot use phpMyAdmin. It says «The mysqli extension is missing.»
8 Answers 8
The problem is that the package that used to connect PHP to MySQL is deprecated (php5-mysql). If you install the new package,
this will automatically update Apache and PHP 7.
I got the solution. I am able to enable MySQLi extension in php.ini. I just uncommented this line in php.ini:
Now MySQLi is working well. Here is the php.ini file path in an Apache 2, PHP 7, and Ubuntu 14.04 environment:
By default, the MySQLi extension is disabled in PHP 7.
On Ubuntu, when mysqli is missing, execute the following,
Replace 7.x with your PHP version.
Note: This could be 7.0 and up, but for example Drupal recommends PHP 7.2 on grounds of security among others.
To check your PHP version, on the command-line type:
You do exactly the same if you are missing mbstring:
I recently had to do this for phpMyAdmin when upgrading PHP from 7.0 to 7.2 on Ubuntu 16.04 (Xenial Xerus).