Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

extension mysql is not compiled into PHP

351 views
Skip to first unread message

Piviul

unread,
Sep 16, 2017, 7:20:02 PM9/16/17
to
Ciao a tutti,
ho aggiornato un server a stretch ed ora non funziona più avantfax. Da
quel che ho capito avantfax utilizza mysql tramite mdb2 . Ora mdb2
riesce a connettersi al db ma poi alla prima query si lamenta con un
messaggio di errore tipo:  MDB2 Error: not found[Error message:
extension mysql is not compiled into PHP]

In effetti ho controllato e da phpinfo() manca mysql, se non tramite
pdo. Ho forse dimenticato qualche pacchetto? Questi sono i pacchetti di
mysql che ho installato:
> # aptitude search ?installed\(mysql\)
> i A dbconfig-mysql                                    -
> dbconfig-common MySQL/MariaDB support
> i A default-mysql-server                              - MySQL database
> server binaries and system database setup (m
> i A libdbd-mysql-perl                                 - Perl5 database
> interface to the MariaDB/MySQL database
> i A mysql-common                                      - MySQL database
> common files, e.g. /etc/mysql/my.cnf
> i   mysql-server                                      - MySQL database
> server binaries and system database setup [t
> i   php-mdb2-driver-mysql                             - mysql MDB2 driver
> i A php-mysql                                         - MySQL module
> for PHP [default]
> i A php7.0-mysql                                      - MySQL module
> for PHP
Ho forse dimenticato qualcosa?

:-/ Piviul

Alessandro Pellizzari

unread,
Sep 17, 2017, 2:50:02 AM9/17/17
to
On 17/09/17 00:20, Piviul wrote:

> ho aggiornato un server a stretch ed ora non funziona più avantfax. Da
> quel che ho capito avantfax utilizza mysql tramite mdb2 . Ora mdb2
> riesce a connettersi al db ma poi alla prima query si lamenta con un
> messaggio di errore tipo:  MDB2 Error: not found[Error message:
> extension mysql is not compiled into PHP]

L'estensione mysql é stata deprecata in PHP 5.5 e rimossa in PHP 7.
Al suo posto bisogna usare mysqli (per un approccio procedurale) o PDO
(per uno a oggetti): http://php.net/manual/en/mysql.php

L'ultima versione di mdb2 é del 2012...

Dovresti segnalare la cosa agli svilupatori di Avantfax.

Bye.

Piviul

unread,
Sep 17, 2017, 4:00:02 AM9/17/17
to
Il 09/17/17 08:23, Alessandro Pellizzari ha scritto:
> L'estensione mysql é stata deprecata in PHP 5.5 e rimossa in PHP 7.
> Al suo posto bisogna usare mysqli (per un approccio procedurale) o PDO
> (per uno a oggetti): http://php.net/manual/en/mysql.php
o porca paletta cosa mi dici! L'ho usata anch'io in modo massivo... mi
dici che quindi dovrò necessariamente migrare a pdo prima di aggiornare
il server dove l'ho usata massivamente? E come mai esistono i pacchetti
per mdb2 sia in stretch che in buster? Quindi anche le classi pear sono
deprecate?

:( Piviul

Piviul

unread,
Sep 17, 2017, 4:30:02 AM9/17/17
to
Il 09/17/17 08:23, Alessandro Pellizzari ha scritto:
> L'estensione mysql é stata deprecata in PHP 5.5 e rimossa in PHP 7.
> Al suo posto bisogna usare mysqli (per un approccio procedurale) o PDO
> (per uno a oggetti): http://php.net/manual/en/mysql.php
>
> L'ultima versione di mdb2 é del 2012...
Alessandro scusa, posso chiederti qualche info in più? ho cercato in
rete ma non ho trovato nulla su quello che dici. Comunque non ci sono
santi, bisogna proprio riscrivere tutto il codice migrandolo a pdo? Non
esiste qualche workaround?

Piviul

emmanuel segura

unread,
Sep 17, 2017, 4:40:03 AM9/17/17
to
--
  .~.
  /V\
 //  \\
/(   )\
^`~'^

Alessandro Pellizzari

unread,
Sep 17, 2017, 5:10:03 AM9/17/17
to
On 17/09/17 09:30, Piviul wrote:

> Il 09/17/17 08:23, Alessandro Pellizzari ha scritto:

>> L'ultima versione di mdb2 é del 2012...

> Alessandro scusa, posso chiederti qualche info in più? ho cercato in
> rete ma non ho trovato nulla su quello che dici.

http://pear.php.net/package/MDB2/redirected

Current Release » Bug Summary
2.5.0b5 (beta) was released on 2012-10-29

PEAR non é deprecato, ma la stragrande maggioranza dei pacchetti non
vengono piú aggiornati da un po'.

Conviene passare a composer (packagist.org)

Negli ultimi 5-6 anni l'universo PHP é completamente cambiato, tra PHP
5.2 prima, poi Composer, PHP-FIG e PHP7.

Se sviluppavi in PHP4 e fino al 5.1, é quasi come cambiare completamente
linguaggio di programmazione.

> Comunque non ci sono
> santi, bisogna proprio riscrivere tutto il codice migrandolo a pdo? Non
> esiste qualche workaround?

mysqli ha una API simile a mysql, anche se non identica, quindi il
passaggio é meno complesso che migrare a PDO:

https://www.phpclasses.org/blog/package/9199/post/3-Smoothly-Migrate-your-PHP-Code-using-the-Old-MySQL-extension-to-MySQLi.html

Ma per tutti i nuovi progetti io consiglio di partire direttamente con
PDO giá da qualche anno. :)

Bye.

Alessandro Pellizzari

unread,
Sep 17, 2017, 5:40:03 AM9/17/17
to
On 17/09/17 09:40, emmanuel segura wrote:

> perche non provi a installe php-mysqlnd

mysqlnd é il driver a basso livello. É giá incluso in PHP dalla 5.4, e
mysqli e PDO lo usano giá per connettersi a MySQL.

Sostituisce libmysqlclient, rimossa per motivi di licenza dopo
l'acquisto di MySQL da parte di Oracle, ma non sostituisce mysqli, PDO
o l'estensione mysql.

Bye.

Piviul

unread,
Sep 18, 2017, 2:20:02 AM9/18/17
to
Il 17/09/2017 10:40, Alessandro Pellizzari ha scritto:
> [...]
> mysqli ha una API simile a mysql, anche se non identica, quindi il
> passaggio é meno complesso che migrare a PDO:
ma io uso mdb2...

Mille grazie :(

Piviul

Piviul

unread,
Sep 18, 2017, 6:50:02 AM9/18/17
to
Il 17/09/2017 10:31, emmanuel segura ha scritto:
> perche non provi a installe php-mysqlnd
> https://serverfault.com/questions/400434/php-mysqlnd-or-php-mysql
ok, posso ma mdb2 non funziona lo stesso :(

Ma scusate ma perché diavolo esiste allora il pacchetto
php-mdb2-driver-mysql? Che senso ha?... forse mi sfugge qualcosa

Piviul



>
> Il giorno 17 settembre 2017 09:39, Piviul <piv...@riminilug.it
> <mailto:piv...@riminilug.it>> ha scritto:

Alessandro Pellizzari

unread,
Sep 18, 2017, 9:50:04 AM9/18/17
to
On 18/09/2017 11:50, Piviul wrote:

> Ma scusate ma perché diavolo esiste allora il pacchetto
> php-mdb2-driver-mysql? Che senso ha?... forse mi sfugge qualcosa

É un bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=869761

Bye.

Piviul

unread,
Sep 20, 2017, 2:40:03 AM9/20/17
to
Il 16/09/2017 21:38, Piviul ha scritto:
> Ciao a tutti,
> ho aggiornato un server a stretch ed ora non funziona più avantfax. Da
> quel che ho capito avantfax utilizza mysql tramite mdb2 . Ora mdb2
> riesce a connettersi al db ma poi alla prima query si lamenta con un
> messaggio di errore tipo:  MDB2 Error: not found[Error message:
> extension mysql is not compiled into PHP]
se qualcuno fosse interessato ho risolto il problema installando il
driver mysql per mdb2, quindi patchando avantfax perché utilizzi il
driver mysqli. Certo, rimane il fatto che avantfax è morto e che
utilizza mdb2 che è un progetto morto... però non vedo molte alternative
sicché se qualcuno ha bisogno di utilizzarlo questi sono i passi per
farlo funzionare anche con PHP7.

Anzitutto bisogna aggiornare mdb2 per renderlo compatibile con php7
(installando le ultime versioni beta di mdb2:

# pear install MDB2.2.5.0b5
# pear install MDB2_Driver_mysqli-1.5.0b4

Quindi bisogna aggiornare il file avantfax/includes/local_config.php
impostando la costante AFDB_ENGINE a mysqli. Poi bisogna andare a
mettere i riferimenti a mysqli nel file avantfax/includes/SQL.php:

require_once 'MDB2/Driver/mysqli.php';
require_once 'MDB2/Driver/Datatype/mysqli.php';

that's all.

Grazie a tutti quanti

Piviul
0 new messages