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

Einfacher CRUD-Betrieb mit PDO-Datenbankverbindung

Datenbanken sind überall und es gibt keine praktische PHP-Anwendung, die ohne eine Datenbank existieren könnte. PHP bietet von Anfang an mehrere Schnittstellenmöglichkeiten zu allen gängigen DBMS. Beispielsweise sind mysql zwei beliebte Schnittstellen für MySQL-basierte Datenbanken und mysqli.

Im Laufe der Jahre haben Datenbanken einen langen Weg zurückgelegt, und jetzt bieten mehrere verschiedene Anbieter beliebte DBMS an, die moderne PHP-Apps unterstützen. Um die Entwicklungspraktiken zu standardisieren und zu rationalisieren, hat PHP in PHP 5.1 PHP Data Objects (PDO) eingeführt. Diese Objekte werden verwendet, um PDO-Datenbankverbindungen einzurichten.

PDO ist eine Datenbankzugriffsschicht, die eine schnelle und konsistente Schnittstelle für den Zugriff auf und die Verwaltung von Datenbanken in PHP-Anwendungen bietet. Jedes DBMS hat spezifische PDO-Treiber, die installiert werden müssen, wenn Sie PDO in PHP-Anwendungen verwenden.

Unterstützte Datenbanken

TreibernameUnterstützte Datenbank

PDO_CUBRID Cubid
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 Oracle Call Interface
PDO_ODBC ODBC v3 (IBM DB2, unixODBC und win32 ODBC)
PDO_PGSQL PostgreSQL
PDO_SQLITE SQLite 3 und SQLite 2
PDO_SQLSRV Microsoft SQL Server / SQL Azure
PDO_4D 4D

Standardmäßig hat PHP den PDO_SQLite-Treiber installiert. Wenn Sie jedoch mit anderen Datenbanken arbeiten möchten, müssen Sie zuerst den entsprechenden Treiber installieren.

Um zu überprüfen, welche Treiber auf Ihrem System installiert sind, erstellen Sie eine neue PHP-Datei und fügen Sie das folgende Code-Snippet hinzu:

<?php

print_r(PDO::getAvailableDrivers());

?>

Arbeiten mit PDO

PDO ersetzt alle bisherigen Datenbankinteraktionsansätze. Mit PDO können Sie CRUD- und verwandte DBMS-Operationen problemlos ausführen. Tatsächlich fungiert PDO als Schicht, die datenbankbezogene Operationen vom Rest des Codes trennt.

Das könnte Ihnen auch gefallen:  Einfaches CRUD in PHP und MySQL

Konnektivität

Einer der wichtigsten Vorteile von PDO ist die einfache und sehr unkomplizierte Datenbankanbindung. Betrachten Sie den folgenden Codeausschnitt, der zum Einrichten von Verbindungen mit der Datenbank verwendet wird. Beachten Sie, dass Sie bei einer Änderung des zugrunde liegenden DBMS nur den Datenbanktyp ändern müssen.

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

	}

}

?>

Beachten Sie im obigen Codeausschnitt, dass das DBMS MySQL ist. Wenn das DBMS jedoch auf MS SQL Server umgestellt wird, besteht die einzige Änderung darin, dass mysql ersetzt wird mit mssql.

Hinweis: PDO kann Ausnahmen behandeln. Schließen Sie daher seine Operation immer in einen Try-and-Catch-Block ein.


Hör auf, Zeit auf Servern zu verschwenden

Cloudways übernimmt die Serververwaltung für Sie, damit Sie sich darauf konzentrieren können, großartige Apps zu erstellen und Ihre Kunden zufrieden zu stellen.

Kostenlos starten


Erstellen einer Tabelle mit PDO

Um eine Tabelle zu erstellen, deklarieren Sie zuerst einen Query-String und führen Sie ihn dann mit exec aus funktionieren, da keine Daten zurückgegeben werden.

<?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();

}

?>

Einfügen von Daten mit PDO

Um Daten per PDO in eine Tabelle einzufügen, bereiten Sie zunächst die Abfrage mit prepare vor Erklärung. Als nächstes wird diese Abfrage mit execute ausgeführt Funktion. Beachten Sie, dass diese Vorgehensweise SQL-Injection-Angriffe verhindert.

<?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();

}

?>

Daten mit PDO auswählen

Um Daten auszuwählen, erstellen Sie zuerst eine Abfragezeichenfolge und führen Sie sie dann in einem for each aus Schleife, um Datensätze aus der Tabelle zu holen.

<?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();

}

?>

Daten mit PDO aktualisieren

Um einen Datensatz in der Tabelle zu aktualisieren, deklarieren Sie zuerst einen Abfragestring und führen Sie ihn dann mit exec aus Funktion.

<?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();

}

?>

Daten mit PDO löschen

Um einen Datensatz aus der Tabelle zu löschen, deklarieren Sie zunächst einen Query-String und führen Sie ihn dann mit exec aus Funktion.

<?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();

}

?>

Schlussfolgerung

PDO ist die Datenzugriffsschicht, die den Prozess der Verbindung und Arbeit mit Datenbanken erheblich vereinfacht. Das Beste an PDO ist vielleicht der optimierte Prozess der Datenbankmigration. Wenn Sie Ihre PDO-Abfragen mit Iteratoren beschleunigen möchten, lesen Sie diesen Artikel von Michelangelo van Dam.

In diesem Artikel habe ich PDO vorgestellt und hervorgehoben, wie Sie CRUD-Aktionen mit PDO in PHP ausführen können. Ich habe auch die Einrichtung von PDO-Datenbankverbindungen demonstriert. Wenn Sie Fragen haben oder zur Diskussion beitragen möchten, hinterlassen Sie unten einen Kommentar.