após a atualização para a conexão php7 para o mysql do php DB retorna DB Error: extension not found

0

Após a atualização do Ubuntu 14.03 para o 16.04. Não consigo me conectar ao mysql do php DB. O código a seguir retorna

<?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 Error: extensão não encontrada.

Note que a partir do mysql, aberto a partir do terminal, vejo o conteúdo da coluna da tabela 'did'.

Seguindo o conselho do oerdnj de um post semelhante, confirmo que

  1. o pacote php7.0-mysql está instalado
  2. o mysqli aparece no phpinfo. Abaixo está o resultado do phpinfo | grep mysqli
  3. e listado abaixo é a saída para o comando ldd

php -r 'phpinfo();' | grep -i mysqli /etc/php/7.0/cli/conf.d/20-mysqli.ini, mysqli MysqlI Support => enabled mysqli.allow_local_infile => On => On mysqli.allow_persistent => On => On mysqli.default_host => no value => no value mysqli.default_port => 3306 => 3306 mysqli.default_pw => no value => no value mysqli.default_socket => no value => no value mysqli.default_user => no value => no value mysqli.max_links => Unlimited => Unlimited mysqli.max_persistent => Unlimited => Unlimited mysqli.reconnect => Off => Off mysqli.rollback_on_cached_plink => Off => Off API Extensions => 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)

Por favor ajude.

    
por tempestcat 07.08.2016 / 22:31

1 resposta

0

Eu alterei $ conninfo="mysql: // xxxx: ppppp @ localhost / ddddd"; para $ conninfo="mysqli: // xxxx: ppppp @ localhost / ddddd"; e agora funciona. Eu não entendo porque o mysql trabalhou no php5 mas não no php7

    
por tempestcat 08.08.2016 / 02:31