После обновления от человечности 14.03 до 16,04. Я не могу соединиться с mysql от php DB. Следующие возвраты кода
<?php
include_once('DB.php');
$conninfo = "mysql://xxxx:ppppp@localhost/ddddd";
$db = DB::connect($conninfo);
if (DB::isError($db)) {
print $db->getMessage();
exit;
} else {
$result = $db->query("SELECT distinct did from selections where cid=6 order by did DESC;");
while ($result->fetchInto($row, DB_FETCHMODE_ASSOC)) {
extract($row);
print "$did\n";
}
$result->free();
}
$db->disconnect();
?>
Ошибка DB: расширение, не найденное.
Обратите внимание, что от mysql, открытого от терминала, я вижу, что содержание столбца таблицы сделало.
Следуя совету oerdnj из подобного сообщения, я подтверждаю это
php-r 'phpinfo ()'; | grep-i mysqli /etc/php/7.0/cli/conf.d/20-mysqli.ini, Поддержка mysqli MysqlI => включила mysqli.allow_local_infile => На => На mysqli.allow_persistent => На => На mysqli.default_host => никакое значение => никакое значение mysqli.default_port => 3306 => 3 306 mysqli.default_pw => никакое значение => никакое значение mysqli.default_socket => никакое значение => никакое значение mysqli.default_user => никакое значение => никакое значение mysqli.max_links => Неограниченный => Неограниченный mysqli.max_persistent => Неограниченный => Неограниченный mysqli.reconnect => Прочь => От mysqli.rollback_on_cached_plink => Прочь => От Расширений API => mysqli, pdo_mysql
ldd/usr/lib/php / */mysqli.so linux-vdso.so.1 => (0x00007ffc807a9000) libc.so.6 =>/lib/x86_64-linux-gnu/libc.so.6 (0x00007f6cde88a000)/lib64/ld-linux-x86-64.so.2 (0x000055a1af509000)
Помогите.
PHP предлагает несколько интерфейсов для взаимодействия с MySQL. Один из тех интерфейсов, один содержащий функции как mysql_connect()
, mysql_query()
и т.д., был отмечен, как удерживается от использования (значение, "это устарело, не используйте их больше") в течение многих лет и лет. С выпуском PHP 7 те старые функции были наконец удалены из PHP.
похоже, что Ваш слой базы данных использует, которые устарели и теперь удаленные функции. Необходимо заменить их одним из более новых интерфейсов к MySQL, который PHP предлагает, как mysqli
или pdo
.
Я изменился $conninfo = "mysql://xxxx:ppppp@localhost/ddddd";
на $conninfo = "mysqli://xxxx:ppppp@localhost/ddddd";
, и теперь это работает. Я не понимаю, почему mysql работал в php5, но не в php7