Corso PHP/ Lezione 11: PHP e il database MySQL

In questa lezione vedremo come interfacciarsi ad un database MySQL e fare le nostre prime interrogazioni SQL attraverso PHP

La coppia PHP e MySQL è sicuramente una delle più diffuse nella realizzazione di applicazioni web basate su software OpenSource. MySQL è un DBMS, Data Base Management System, cioè un software per la gestione di basi di dati; la sua popolarità è indiscussa, grazie alle prestazioni di tutto rispetto e nonostante la mancanza di diverse caratteristiche avanzate (transazioni, stored procedures, etc.).

Nel seguito vedremo in che modo è possibile, da uno script PHP, collegarsi ad un database MySQL ed eseguire operazioni su di esso tramite il linguaggio SQL. Per una completa comprensione della lezione è necessaria una conoscenza di base di SQL; assumeremo, inoltre, che MySQL sia correttamente installato.

L'accesso ad un database MySQL avviene mediante autenticazione; questo vuol dire che, prima di poter effettuare qualsiasi operazione su di esso, dobbiamo disporre dei privilegi necessari. In particolare, le informazioni di cui abbiamo bisogno sono: il nome dell'host su cui è in esecuzione il server MySQL, il nome del nostro database, il nome utente che ci è stato assegnato e la relativa password (per averle occorre rivolgersi all'amministratore di sistema). Supponiamo che i parametri nel nostro caso siano i seguenti:

// Il nome dell'host (hostname) su cui si trova MySQL
$dbhost = "localhost";
// Il nome del nostro database
$dbname = "dbprova";


// Il nostro nome utente (username)
$dbuser = "luca";


// La nostra password
$dbpass = "secret";


E' opportuno salvare tali parametri in apposite variabili piuttosto che utilizzarli direttamente nelle chiamate di funzione; in tal modo, infatti, potremo inserirli in un file separato che includeremo in tutti gli script che accedono al database.

La prima funzione che utilizziamo è mysql_connect(), che ci servirà per instaurare la connessione con il server MySQL. I parametri da fornire a tale funzione sono il nome dell'host, il nome utente e la password. Vediamo un esempio:

// Funzione mysql_connect()
$conn = mysql_connect($dbhost,$dbuser,$dbpass)
or die("Impossibile collegarsi al server MySQL.");


Si osservi la sintassi utilizzata nell'esempio precedente; il significato è il seguente: se la funzione restituisce un valore nullo, situazione che denota l'impossibilità a collegarsi al server MySQL, viene invocata die() per arrestare l'esecuzione e visualizzare un messaggio di errore. Inoltre, in una variabile che abbiamo chiamato $conn salviamo il valore restituito da mysql_connect(), che servirà da identificativo della connessione stabilita.
11 Commenti alla Notizia Corso PHP/ Lezione 11: PHP e il database MySQL
Ordina
  • Come posso trovare l'host del mio database nello spazio su altervista per configurare il sito in phpnuke?
    Grazie!
  • la data in mysql é registrata in formato americano.

    Come é posobile fare in modo che estraendo i dati dal dbase questa data possa essere convertita in formato europeo?

    Premetto che il dbase che ho costruito funziona e vorrei semplicemente convertire tale data.

    Ecco il file di estrazione:

    <?php

    mysql_connect("localhost", "----", "----") or die("Connessione impossibile");
    mysql_select_db("---") or die("Selezione dbase impossibile");
    $result = mysql_query("SELECT * FROM assenze") or die(mysql_error());

    ?>

    Assenze del .........

    idx
    data
    lezione
    ora
    docente
    adresse e-mail
    test
    sostituto

    <?php
    while($rows = mysql_fetch_array($result)) {
    echo '

    '.$rows["idx"].'
    '.$rows["data"].'
    '.$rows["lezione"].'
    '.$rows["ora"].'
    '.$rows["docente"].'
    '.$rows["email"].'

    '.$rows["testo"].'
    '.$rows["sostituto"].'
    ';
    }
    ?>


    ciao e grazie pier
    non+autenticato
  • Fan AppleCiao
    non+autenticato

  • - Scritto da:
    > la data in mysql é registrata in formato
    > americano.
    >
    > Come é posobile fare in modo che estraendo i dati
    > dal dbase questa data possa essere convertita in
    > formato
    > europeo?
    >
    > Premetto che il dbase che ho costruito funziona e
    > vorrei semplicemente convertire tale
    > data.
    >
    > Ecco il file di estrazione:
    >
    > <?php
    >
    > mysql_connect("localhost", "----", "----") or
    > die("Connessione impossibile");
    >
    > mysql_select_db("---") or die("Selezione dbase
    > impossibile");
    > $result = mysql_query("SELECT * FROM assenze") or
    > die(mysql_error());
    >
    > ?>
    >
    > Assenze del .........
    >
    > idx
    > data
    > lezione
    > ora
    > docente
    > adresse e-mail
    > test
    > sostituto
    >
    > <?php
    > while($rows = mysql_fetch_array($result)) {
    > echo '
    >
    > '.$rows["idx"].'
    > '.$rows["data"].'
    > '.$rows["lezione"].'
    > '.$rows["ora"].'
    > '.$rows["docente"].'
    > '.$rows["email"].'
    >
    > '.$rows["testo"].'
    > '.$rows["sostituto"].'
    > ';
    > }
    > ?>
    >
    >
    > ciao e grazie pier
    non+autenticato
  • Scusami caro ma non ti capisco, mi puoi aiutare veramente spiegandomi tutto in un modo piu semplice, tieni conto che non sono tanto aferrata in materia. Grazie. Fiorellita.
    non+autenticato
  • Anche se ho usato mysql front per creare il mio database? Grazie.Fiorellita.
    non+autenticato


  • - Scritto da: Fiorellita
    > Anche se ho usato mysql front per creare il
    > mio database? Grazie.Fiorellita.

    Quello è solo un'interfaccia. I comandi li puoi CMQ dare da linea di comando A bocca aperta
    non+autenticato
  • Come si fa ad inserire dell'informazione in un database già creato, tramite l'Insert creo dei campi vuoti e poi come li riempio? cioè come faccio a passare i dati (testo) direttamente al mio database?
    non+autenticato


  • - Scritto da: fiorella
    > Come si fa ad inserire dell'informazione in
    > un database già creato, tramite l'Insert
    > creo dei campi vuoti e poi come li riempio?
    > cioè come faccio a passare i dati (testo)
    > direttamente al mio database?

    insert into nometabella(campo1, campo2, ...) values ('testo1', 'testo2', ...)


    P.S. Ma aprire un libro no?
    non+autenticato
  • [OT]
    Libro? what's libro?

    Noi italiani (e per fortuna non tutti noi) siamo pigri..

    "Pappa pronta, calcio bello, (NON parlo di politica....)"
    ...
    Per fortuna c'e' anche gente disposta a farsi un posteriore bello grosso, cercando guide gratuite per iniziare a conoscere PHP... (come il pdf di Balzerani - che è tra la gente disposta a farsi il posteriore, ma x aiutare gli altri Occhiolino )

    che ci volete fare... siamo italiani...
    [/OT]
    non+autenticato
  • bhe considerando che:

    gli autori dei libri fanno axxate tipo non chiudere i tag (es. all' inizio e poi ... nn si sa

    oppure cognome ripetuto in una seconda pagina come gnome!!!

    (ehm non bisogna leggerli bisogna interpretarli!!!)

    allora forse un aiuto on line per i principianti qualche volta
    è meglio darlo (senza commenti idioti):D

    Grz Marco
    non+autenticato