Errore Call to undefined function mysql_connect() - fix

Giorgio Borelli

Se stai utilizzando la classica combinazione Apache, MySql e PHP sia che tu sia in ambiente Linux (LAMP) o Windows (WAMP) è possibile che aggiornando il linguaggio PHP alla recente versione 7, tu possa aver ricevuto il messaggio di errore "Call to undefined function mysql_connect()" quando proprio invocando questa funzione della libreria php cerchi di connetterti al database MySql.

Come mai prima non accadeva? Come mai il tuo codice sorgente e le connessioni al database prima andavano perfettamente e adesso sembra non funzionare più niente. Andiamo a scoprirne il perché, e vedere come risolvere.

Il problema come fra l'altro è facile intuire, sta proprio nell'aggiornamento del linguaggio PHP, e non importa che tu stia scrivendo codice (sviluppando) in locale su Linux o magari su Windows usando XAMPP, se la versione del PHP che stai utilizzando è la 7 e superiori, invocando la funzione mysql_connect() riceverai sempre e comunque l'errore "Call to undefined function mysql_connect()" poiché in questa versione del linguaggio detta funzione risultava già deprecata nella versione php 5.5 e dalla 7 in poi è stata del tutto rimossa (così come tutte le funzioni annesse alla libreria per la comunicazione e lo scambio dati con mysql).

Per verificare la tua versione di php in esecuzione, puoi realizzare un banale script con l'istruzione:

<?php phpinfo(); exit(); ?>

Questo ti darà tutte le informazioni sulla tua configurazione php, versione, librerie, moduli attivi ed altro.

Adesso che hai capito il perchè di quel messaggio di errore, per porvi rimedio devi utilizzare le nuove librerie per la connessione e comunicazione con MySql, ovvero MySQLi per un approccio funzionale o PDO_MySQL per uno ad oggetti.

L'estensione MySQLi ad esempio utilizza la funzione per la connessione al DB in questo modo: $link = mysqli_connect("127.0.0.1","root","pass","your_database");

Se la connessione viene stabilita e va a buon fine, ritorna di fatto un link una risorsa, che viene poi utilizzata come riferimento per le altre operazioni ed invocazioni di funzioni al database mysql, come la "mysqli_query($link,...)" per eseguire una query sql, o la "mysqli_num_rows($resultset)" per contare i numeri ritornati e presenti in un insieme di dati da una select.

Tutte queste funzioni della nuova estensione si riconoscono rispetto alle vecchie per il suffisso "i", ed ovviamente la loro spiegazione ed implementazione esulano da questo articolo, l'importante è aver capito che l'errore viene generato dall'aver aggiornato la versione di PHP e basta ri-adattare il proprio codice con le nuove estensioni di libreria per veder scomparire e risolvere l'errore "Call to undefined function mysql_connect()".

Categorie: fix | PHP

Tags: , ,

Aggiungi Commento

biuquote
  • Commento
  • Anteprima
Loading