Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 39 di 56
  • livello intermedio
Indice lezioni

La connessione a MySQL

Come utilizzare PHP per collegarsi ad un database usando semplici e brevi istruzioni. La classe di connessione
Come utilizzare PHP per collegarsi ad un database usando semplici e brevi istruzioni. La classe di connessione
Link copiato negli appunti

Brevi segnalazioni prima di procedere

  • nel corso di questa trattazione, le funzioni PHP non verranno precedute dall'operatore di silence (@
  • tutto il codice utilizzato per questa guida può essere scaricato
  • le versioni dei server utilizzate nella guida sono le seguenti: PHP versione 5.2.10, MySQL versione 4.1.22-standard, Apache versione 2.2.11 (Linux).
  • Connessione PHP MySQL

    Perché un'applicazione realizzata in PHP possa utilizzare le informazioni contenute all'interno di un database questa deve poter avere accesso ad esse, a questo scopo l'applicazione dovrà poter comunicare con l'RDBMS che gestisce la base di dati, ciò è possibile attraverso un procedura iniziale e necessaria chiamata "connessione"; per evitare ambiguità è bene chiarire che la procedura di connessione avviene tra lo script e il programma che gestisce la base di dati e non tra lo script e la base di dati stessa; una volta terminata la procedura necessaria per la connessione all'RDBMS, sarà possibile avviarne una seconda chiamata di "selezione" del database da utilizzare.

    Parametri di connessione

    Per aprire una connessione da un'applicazione in PHP al database manager MySQL, si utilizza una funzione nativa del linguaggio chiamata mysql_connect(), essa restituisce un identificativo di connessione MySQL in caso di successo, diversamente restituisce FALSE;

    questa funzione richiede il passaggio di tre parametri che sono argomenti della funzione:

    1. hostname
    2. username
    3. password

    I tre parametri da passare a mysql_connect() possono essere espressi sia sotto forma di variabili che sotto forma di valori puri, l'ordine da rispettare è quello proposto in elenco, per cui sarà possibile utilizzare sia una forma del genere:

    // hostname
    $nomehost = "localhost";
    // utente per la connessione a MySQL
    $nomeuser = "username";
    // password per l'autenticazione dell'utente
    $password = "password";
    // connessione tramite mysql_connect()
    $connessione = mysql_connect($host,$user,$pass);

    che la forma seguente

    // connessione a MySQL tramite mysql_connect()
    $connessione = mysql_connect("localhost","username","password");

    Un buon metodo per permettere ad un'applicazione realizzata in PHP di connettersi a MySQL è quello di utilizzare una classe:

    <?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;
    }
    }
    }
    ?>

    Programmazione a oggetti

    Per quanto la programmazione per oggetti possa presentare qualche complessità in più rispetto a quella che segue il paradigma procedurale, il meccanismo utilizzato dalla classe appena proposta risulta abbastanza semplice:

    • i parametri per la connessione al DBMS vengono associati al modificatore "private" che li renderà disponibili soltanto all'interno della classe di appartenenza, secondo le regole di visibilità introdotte dal paradigma OOP nelle ultime versioni di PHP;
    • viene effettuato un controllo sull'eventuale esistenza di connessioni attive;
    • viene definita una funzione personalizzata (denominata connetti() public
    • nel caso in cui non sia già attiva alcuna connessione, i parametri necessari ad essa verranno passati alla funzione primitiva mysql_connect()

    Questa classe, che verrà implementata con nuove funzionalità nel corso della trattazione, potrà essere salvata in un file chiamato ad esempio funzioni_mysql.php (o se si preferisce il classico config.php); essa potrà essere richiamata in qualsiasi momento da qualsiasi file con una semplice inclusione; perché la classe possa essere utilizzata dovrà essere istanziata, nello stesso modo sarà possibile utilizzare la funzione per la connessione a MySQL tramite una semplice chiamata:

    // inclusione del file contenente la classe
    include "funzioni_mysql.php"
    // istanza della classe
    $data = new MysqlClass();
    // chiamata alla funzione di connessione
    $data->connetti();

Ti consigliamo anche