Salve a tutti. Sto cominciando a entrare nel mondo PHP e ho una domanda relativa ad una guida presente sul vostro sito (n.b. vi consiglierei di aggiungere una sezione apposita dove raggruppare tutte le domande degli utenti inerenti alle vostre guide).
Nello specifico la guida PHP e MySql ela parte di codice che necessita chiarimenti è la seguente (http://www.html.it/pag/16431/lautenticazione/ )
Codice PHP:
include "funzioni_mysql.php";
// istanza della classe
$data = new MysqlClass();
// chiamata alla funzione di connessione
$data->connetti();
Praticamente usando una classe personalizzata chiamata per l'appunto MysqlClass() è possibile effettuare la connessione e verificarne la riuscita con poche righe di testo ed ogni volta che si richiede necessaria una connessione al DB basta richiamare queste poche righe.
Ovviamente previa creazione della classe stessa nel modo seguente:
Codice PHP:
class MysqlClass { // parametri per la connessione al database
private $nomehost = "localhost";
private $nomeuser = "username";
private $password = "password";
// controllo sulle connessioni attive
private $attiva = false;
// funzione per la connessione a MySQL
public function connetti() {
if(!$this->attiva) {
$connessione = mysql_connect($this->nomehost,$this->nomeuser,$this->password);
}else{
return true;}
}
}
Cosa succede invece se si usa la classe MySqli?
In pratica per stabilire una connessione basta creare un oggetto
Codice PHP:
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
in questo modo e far seguire il debugging per verificare la riuscita della connessione o meno:
Codice PHP:
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); }
echo 'Success... ' . $mysqli->host_info . "\n";
$mysqli->close();
e il gioco è fatto.
Ma quando si dovrà effettuare una nuova connessione si dovrà utilizzare molto più codice di quanto fatto utilizzando una classe personalizzata
Codice PHP:
include "funzioni_mysql.php";
// istanza della classe
$data = new MysqlClass();
// chiamata alla funzione di connessione
$data->connetti();
Codice PHP:
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); }
echo 'Success... ' . $mysqli->host_info . "\n";
$mysqli->close();
A questo punto mi domando, meglio MySql oppure meglio l'estensione MySqli????