после того, как обновление php7 соединения с mysql от php DB возвращает Ошибку DB: расширение, не найденное

После обновления от человечности 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 из подобного сообщения, я подтверждаю это

  1. пакет php7.0-mysql установлен
  2. mysqli появляется в phpinfo. Ниже результат phpinfo | grep mysqli
  3. и упомянутый ниже вывод для команды ldd

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)

Помогите.

0
задан 7 August 2016 в 23:31

2 ответа

PHP предлагает несколько интерфейсов для взаимодействия с MySQL. Один из тех интерфейсов, один содержащий функции как mysql_connect(), mysql_query() и т.д., был отмечен, как удерживается от использования (значение, "это устарело, не используйте их больше") в течение многих лет и лет. С выпуском PHP 7 те старые функции были наконец удалены из PHP.

похоже, что Ваш слой базы данных использует, которые устарели и теперь удаленные функции. Необходимо заменить их одним из более новых интерфейсов к MySQL, который PHP предлагает, как mysqli или pdo.

1
ответ дан 28 September 2019 в 17:30

Я изменился $conninfo = "mysql://xxxx:ppppp@localhost/ddddd"; на $conninfo = "mysqli://xxxx:ppppp@localhost/ddddd";, и теперь это работает. Я не понимаю, почему mysql работал в php5, но не в php7

0
ответ дан 28 September 2019 в 17:30

Другие вопросы по тегам:

Похожие вопросы: