L'extension
PHP DataObject (PDO) définit une interface légère et cohérente permettant à PHP d'accéder aux bases de données.
PDO fournit une couche d'abstraction d'accès aux données, ce qui signifie que quelle que soit la base de données utilisée, les mêmes fonctions (méthodes) peuvent être utilisées pour interroger et obtenir des données.
PDO est publié avec PHP5.1 et peut également être utilisé dans l'extension PECL de PHP5.0. Il ne peut pas fonctionner sur les versions PHP précédentes.
Cet article présente principalement le fonctionnement PDO de PHP. Il analyse la connexion simple, l'initialisation et la requête, l'insertion et d'autres techniques de fonctionnement du fonctionnement PDO de PHP sous la forme d'exemples simples. référez-vous-y. Ensuite, Ici, j'encapsule toutes les opérations de PDO dans une classe pour une utilisation facile. Le code de la classe
est le suivant :
class DB { //pdo对象 public $con = NULL; function DB() { $this->con = new PDO("mysql:host=127.0.0.1;dbname=dbtest", "root", "xxx", array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES `utf8`', PDO::ATTR_PERSISTENT => TRUE, )); $this->con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->con->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER); } public function query($sql, $para = NULL) { $sqlType = strtoupper(substr($sql, 0, 6)); $cmd = $this->con->prepare($sql); if($para != NULL) { $cmd->execute($para); } else { $cmd->execute(); } if($sqlType == "SELECT") { return $cmd->fetchAll(); } if($sqlType == "INSERT") { return $this->con->lastInsertId(); } return $cmd->rowCount(); } }
Utilisation :
include "pdo.php"; $db = new DB(); $subjectList = $db->query("SELECT * FROM `table1`"); $count = $db->query("UPDATE `table1` SET `name` = 'test' WHERE `id` = :id", array(':id' => 795)); try { echo $db->con->beginTransaction(); $count = $db->con->exec("UPDATE `table1` SET `name` = 'test1' WHERE `id` = 795"); $count = $db->con->exec("UPDATE `table1` SET `name1` = 'test22' WHERE `id` = 795"); $count = $db->con->exec("UPDATE `table1` SET `name1` = 'test333' WHERE `id` = 795"); echo $db->con->commit(); } catch (Exception $e) { // MYSQL 的表类型 InnoDB(支持事务) MyISAM(不支持事务) echo $db->con->rollBack(); throw new MyException("事务测试错误", $e); } $db = NULL;
PDO prend en charge les instructions SQL à appeler en tant que paramètres, qui peut empêcher efficacement l'injection SQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!