Database
 sql >> Database >  >> RDS >> Database

Facile funzionamento CRUD con PDO Database Connection

I database sono ovunque e non esiste una pratica applicazione PHP che potrebbe esistere senza un database. Fin dall'inizio, PHP offre diversi modi di interfacciarsi con tutti i più diffusi DBMS. Ad esempio, due metodi popolari per interfacciarsi con i database basati su MySQL sono mysql e mysqli.

Nel corso degli anni, i database hanno fatto molta strada e ora diversi fornitori offrono DBMS popolari che alimentano le moderne app PHP. Per standardizzare e semplificare le pratiche di sviluppo, PHP ha introdotto PHP Data Objects (PDO) in PHP 5.1. Questi oggetti vengono utilizzati per configurare le connessioni al database PDO.

PDO è un livello di accesso al database che fornisce un'interfaccia veloce e coerente per l'accesso e la gestione dei database nelle applicazioni PHP. Ogni DBMS ha driver PDO specifici che devono essere installati quando si utilizza PDO in applicazioni PHP.

Database supportati

Nome del driver Database supportato

PDO_CUBRID Cubrid
PDO_DBLIB FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD Firebird
PDO_IBM IBM DB2
PDO_INFORMIX IBM Informix Dynamic Server
PDO_MYSQL MySQL 3.x/4.x/5.x
PDO_OCI Interfaccia Oracle Call
PDO_ODBC ODBC v3 (IBM DB2, unixODBC e win32 ODBC)
PDO_PGSQL PostgreSQL
PDO_SQLITE SQLite 3 e SQLite 2
PDO_SQLSRV Microsoft SQL Server/SQL Azure
PDO_4D 4D

Per impostazione predefinita, PHP ha il driver PDO_SQLite installato. Tuttavia, se desideri lavorare con altri database, devi prima installare il relativo driver.

per verificare quali driver sono installati sul tuo sistema, crea un nuovo file PHP e aggiungi il seguente snippet di codice:

<?php

print_r(PDO::getAvailableDrivers());

?>

Lavorare con DOP

PDO sostituisce tutti i precedenti approcci di interazione con il database. Usando PDO, potresti facilmente eseguire CRUD e le relative operazioni DBMS. In effetti, PDO funge da livello che separa le operazioni relative al database dal resto del codice.

Ti potrebbe piacere anche:  Semplice CRUD in PHP e MySQL

Connettività

Uno dei vantaggi più importanti di PDO è la connettività al database semplice e molto diretta. Si consideri il seguente frammento di codice utilizzato per configurare le connessioni con il database. Nota che quando il DBMS sottostante cambia, l'unica modifica che devi apportare è il tipo di database.

<?php

Class Connection {

private  $server = "mysql:host=localhost;dbname=cloudways";

private  $user = "root";

private  $pass = "";

private $options  = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,);

protected $con;
 
          	public function openConnection()

           	{

               try

                 {

	        $this->con = new PDO($this->server, $this->user,$this->pass,$this->options);

	        return $this->con;

                  }

               catch (PDOException $e)

                 {

                     echo "There is some problem in connection: " . $e->getMessage();

                 }

           	}

public function closeConnection() {

   	$this->con = null;

	}

}

?>

Nel frammento di codice sopra, nota che il DBMS è MySQL. Tuttavia, se il DBMS cambia in MS SQL Server, l'unica modifica sarà la sostituzione di mysql con msql.

Nota: PDO può gestire le eccezioni. Pertanto, avvolgi sempre il suo funzionamento in un blocco try and catch.


Smetti di perdere tempo con i server

Cloudways gestisce per te la gestione dei server in modo che tu possa concentrarti sulla creazione di fantastiche app e sulla soddisfazione dei tuoi clienti.

Inizia gratis


Creazione di una tabella con PDO

Per creare una tabella, prima dichiara una stringa di query e poi eseguila con exec funzione in quanto nessun dato verrà restituito.

<?php

include_once 'connection.php';

try

{

     $database = new Connection();

     $db = $database->openConnection();

     // sql to create table

     $sql = "CREATE TABLE `Student` ( `ID` INT NOT NULL AUTO_INCREMENT , `name`VARCHAR(40) NOT NULL , `last_ame` VARCHAR(40) NOT NULL , `email` VARCHAR(40)NOT NULL , PRIMARY KEY (`ID`)) ";

     // use exec() because no results are returned

     $db->exec($sql);

     echo "Table Student created successfully";

     $database->closeConnection();

}

catch (PDOException $e)

{

    echo "There is some problem in connection: " . $e->getMessage();

}

?>

Inserimento dati con PDO

Per inserire dati in una tabella utilizzando PDO, prima prepara la query utilizzando prepara dichiarazione. Successivamente, questa query viene eseguita con execute funzione. Tieni presente che questa pratica previene gli attacchi SQL injection.

<?php

include_once 'connection.php';

try

{

    $database = new Connection();

    $db = $database->openConnection();

    // inserting data into create table using prepare statement to prevent from sql injections

    $stm = $db->prepare("INSERT INTO student (ID,name,last_name,email) VALUES ( :id, :name, :lastname, :email)") ;

    // inserting a record

    $stm->execute(array(':id' => 0 , ':name' => 'Saquib' , ':lastname' => 'Rizwan' , ':email' => '[email protected]'));

    echo "New record created successfully";

}

catch (PDOException $e)

{

    echo "There is some problem in connection: " . $e->getMessage();

}

?>

Seleziona dati con PDO

Per selezionare i dati, crea prima una stringa di query e poi eseguila in un per ciascuno loop per recuperare i record dalla tabella.

<?php

include_once 'connection.php';

try

{

    $database = new Connection();

    $db = $database->openConnection();

    $sql = "SELECT * FROM student " ;

    foreach ($db->query($sql) as $row) {

    echo " ID: ".$row['ID'] . "<br>";

    echo " Name: ".$row['name'] . "<br>";

    echo " Last Name: ".$row['last_name'] . "<br>";

    echo " Email: ".$row['email'] . "<br>";

    }

}

catch (PDOException $e)

{

    echo "There is some problem in connection: " . $e->getMessage();

}

?>

Aggiorna i dati con PDO

Per aggiornare un record nella tabella, prima dichiara una stringa di query e poi eseguila con exec funzione.

<?php

include_once 'connection.php';

try

{

     $database = new Connection();

     $db = $database->openConnection();

     $sql = "UPDATE `student` SET `name`= 'yourname' , `last_name` = 'your lastname' , `email` = 'your email' WHERE `id` = 8" ;

     $affectedrows  = $db->exec($sql);

   if(isset($affectedrows))

    {

       echo "Record has been successfully updated";

    }          

}

catch (PDOException $e)

{

    echo "There is some problem in connection: " . $e->getMessage();

}

?>

Elimina dati con PDO

Per eliminare un record dalla tabella, dichiara prima una stringa di query e poi eseguila con exec funzione.

<?php

include_once 'connection.php';

try

{

     $database = new Connection();

     $db = $database->openConnection();

     $sql = "DELETE FROM student WHERE `id` = 8" ;

     $affectedrows  = $db->exec($sql);

   if(isset($affectedrows))

    {

       echo "Record has been successfully deleted";

    }          

}

catch (PDOException $e)

{

   echo "There is some problem in connection: " . $e->getMessage();

}

?>

Conclusione

PDO è il livello di accesso ai dati che semplifica notevolmente il processo di connessione e di lavoro con i database. Forse, la cosa migliore di PDO è il processo semplificato di migrazione del database. Se vuoi velocizzare le tue query PDO con gli iteratori, dai un'occhiata a questo articolo di Michelangelo van Dam.

In questo articolo, ho introdotto PDO e evidenziato come eseguire azioni CRUD utilizzando PDO in PHP. Ho anche dimostrato la configurazione delle connessioni al database PDO. Se hai domande o desideri aggiungere informazioni alla discussione, lascia un commento qui sotto.