Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Connessione DB con PHP

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    15

    Connessione DB con PHP

    Salve a tutti ragazzi,
    scrivo questo topic perchè da qualche tempo sto cercando di apprendere PHP/MySQL tramite la lettura di un libro chiamato "Sviluppare applicazioni con PHP e MySQL".
    Attualmente sto leggendo il capitolo riguardante appunto il metodo per stabilire una connessione ad un database MySQL con PHP e all'intero del libro viene illustrato il seguente metodo:

    Codice PHP:
    $pdo = new PDO('mysql:host=hostname; dbname=database''username'password') 
    Da quanto ho capito PDO è un' estensione integrata con PHP e nel libro viene spiegato il concetto di "eccezione PHP" per problemi relativi alla connessione del DB insieme all'istruzione try-catch, quindi il codice completo sarebbe questo:

    Codice PHP:
    try {
    $pdo = new PDO('mysql:host=hostname; dbname=database''username'password');
    }

    catch (PDOException $e)
    {
    $output = '
    Impossibile connettersi al database.';
    include '
    output.html.php'
    exit();


    Il dubbio che mi sorge è che leggendo alcuni tutorial pubblicati su internet per eseguire la stessa operazione (Connessione DB) viene utilizzato di norma un file chiamato 'config.php' con la seguente variabile:

    Codice PHP:
    $connect = @mysql_connect($dbhost$dbuser$dbpass) or die (mysql_error());
    @
    mysql_select_db($dbname) or die (mysql_error()); 

    In più nel libro utilizzato viene spiegato che la connessione a MySQL viene chiusa in automatico da PHP e non è necessario utilizzare uno script per "terminarla manualmente"
    Vorrei sapere se i due metodi utilizzati hanno una differenza o eseguono le stesse funzioni, e quale dei due è il più "elegante". Grazie in anticipo.
    Ultima modifica di BDR529; 27-01-2015 a 14:57

  2. #2
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Vorrei sapere se i due metodi utilizzati hanno una differenza o eseguono le stesse funzioni
    Le funzioni mysql_* sono deprecate e verranno rimosse nel prossimo futuro. PDO ha differenti vantaggi, una delle tante sono le prepared statement e la possibilità di un approccio oop. Ti invito a documentarti per conto tuo su PDO e ti incoraggio a utilizzarlo al posto di mysql_*. Entrambi comunque chiudono la connessione al database impicitamente, anche se è una buona cosa chiuderla esplicitamente quando non ne devi fare più uso.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    15
    Quote Originariamente inviata da .Kurt Visualizza il messaggio
    Le funzioni mysql_* sono deprecate e verranno rimosse nel prossimo futuro. PDO ha differenti vantaggi, una delle tante sono le prepared statement e la possibilità di un approccio oop. Ti invito a documentarti per conto tuo su PDO e ti incoraggio a utilizzarlo al posto di mysql_*. Entrambi comunque chiudono la connessione al database impicitamente, anche se è una buona cosa chiuderla esplicitamente quando non ne devi fare più uso.
    Grazie per la spiegazione sei stato molto chiaro. Avrei un' altro paio di domande da fare:

    Utilizzando il metodo con PDO mi conviene stabilire la connessione all'interno di un altro file (come ad esempio config) e poi inserirlo con require() nella pagina in cui utilizzerò il DB, oppure inserire la funzione direttamente all'interno della pagina in cui dovrò utilizzare i dati del database?

    La seconda domanda è: per chiudere la connessione (PDO) in modo esplicito posso utilizzare:

    mysql_close($pdo)
    Oppure c'è un modo differente? (visto che anche questa è una funzione mysql_)
    Ultima modifica di BDR529; 27-01-2015 a 16:38

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    Ciao BDR529,
    non conviene assolutamente creare l'istanza PDO in ogni file in cui serve, se dovessi avere necessità, in futuro, di cambiare i dati di accesso al DB dovresti mettere mano ad ogni file per modificarli.
    Andando avanti con lo studio vedrai che esistono dei pattern (MVC, "service container",ecc) che permettono di rendere l'inclusione e la gestione della connessione, e non solo, semplice e ben organizzata.
    Per il momento conviene incudere un file config.php


    Per chiudere la connessione, direttamente dalla documentazione:
    The connection remains active for the lifetime of that PDO object. To close the connection, you need to destroy the object by ensuring that all remaining references to it are deleted--you do this by assigning NULL to the variable that holds the object. If you don't do this explicitly, PHP will automatically close the connection when your script ends.

    Quindi se proprio vuoi farlo in modo diretto $pdo = null;

    Ma non è necessario.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    15
    Quote Originariamente inviata da arkus Visualizza il messaggio
    Ciao BDR529,
    non conviene assolutamente creare l'istanza PDO in ogni file in cui serve, se dovessi avere necessità, in futuro, di cambiare i dati di accesso al DB dovresti mettere mano ad ogni file per modificarli.
    Andando avanti con lo studio vedrai che esistono dei pattern (MVC, "service container",ecc) che permettono di rendere l'inclusione e la gestione della connessione, e non solo, semplice e ben organizzata.
    Per il momento conviene incudere un file config.php


    Per chiudere la connessione, direttamente dalla documentazione:
    The connection remains active for the lifetime of that PDO object. To close the connection, you need to destroy the object by ensuring that all remaining references to it are deleted--you do this by assigning NULL to the variable that holds the object. If you don't do this explicitly, PHP will automatically close the connection when your script ends.

    Quindi se proprio vuoi farlo in modo diretto $pdo = null;

    Ma non è necessario.
    Hai chiarito ogni mio dubbio, oggi ho testato la connessione PDO e fortunatamente è andato tutto come nei piani.
    Adesso continuerò la lettura del libro e cercherò di raggiungere il mio scopo, ossia creare un blog con PHP e MySql.
    Grazie ancora per l'aiuto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.