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 startenErstellen 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.