In diesem Artikel werden hauptsächlich die Sicherheitsverarbeitungs- und Transaktionsverarbeitungsmethoden von PDO vorgestellt, die einen gewissen Referenzwert haben.
Transaktion ist eine sehr wichtige Funktion beim Betrieb der Datenbank. Sie ermöglicht es Ihnen, eine oder mehrere SQL-Anweisungen zu planen und diese dann zusammen auszuführen Wenn die Ausführung erfolgreich ist, können Transaktionen mit großen Datenmengen das Problem der Nichtsynchronisation lösen Die Ausführungseffizienz kann derzeit durch Transaktionen erheblich verbessert werden.
Die Transaktionsverarbeitung weist vier Merkmale auf: Atomizität, Konsistenz, Unabhängigkeit und Haltbarkeit. Nicht alle Datenbanken unterstützen die Transaktionsverarbeitung. PDO bietet Transaktionsunterstützung für Datenbanken, die eine Transaktionsverarbeitung durchführen können.
1. PDO-Ausnahmebehandlung
PDO::ATTR_ERRMODE
1) PDO::ATTR_ERRMODE//Keinen Fehler melden ( ignorieren) (0)
2) PDO::ERRMODE_WARNING
//Fehler als Warnungen melden (1)
3) PDO::ERRMODE_EXCEPTION //Bericht Fehler als Ausnahmen Der Weg, einen Fehler zu melden (2)
<?php //默认是PDO::ATTR_ERRMODE 不报错误(忽略)(0),需要用errorCode()、errorInfo() try{ $pdo=new PDO("mysql:host=localhost;dbname=myapp","root",""); // $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING); $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); }catch (PDOException $e){ die("fail to connect db".$e->getMessage()); } $sql="INSERT INTO user VALUES(null,'dabao','26')"; try{ $res=$pdo->exec($sql); }catch (PDOException $e){ echo $e->getMessage(); } //$res=$pdo->exec($sql); //if($res){ // echo 'OK'; //}else{ // echo $pdo->errorCode(); // echo '<br/>'; // print_r($pdo->errorInfo()); //}
2. PDO-Vorverarbeitungsmethode
1) Prepare() // Wird zum Ausführen von Abfrage-SQL-Anweisungen und zum Zurückgeben von PDOStatement-Objekten verwendet
2) bindValue() // Bindet den Wert an einen entsprechenden Parameter und gibt einen booleschen Wert zurück
3) bindParam() //Binden Sie die Parameter an den entsprechenden Abfrageplatzhalter und geben Sie einen booleschen Wert zurück
4) bindColumn() //Wird zum Abgleichen des Spaltennamens verwendet und ein angegebener Der Variablenname
5)execute() // Eine vorbereitete vorbereitete Anweisung ausführen und einen booleschen Wert zurückgeben
6) rowCount() // Zurück zu use Gesamtzahl der betroffenen Zeilen nach dem Hinzufügen, Löschen, Ändern und Überprüfen von Operationsanweisungen
<?php /** * ?号式的预处理语句,共有三种绑定方式 */ //1.连接数据库 try{ $pdo=new PDO("mysql:host=localhost;dbname=myapp","root",""); }catch (PDOException $e){ die("fail to connect db".$e->getMessage()); } //2.预处理的SQL语句 $sql="INSERT INTO users(id,name,age) VALUES(?,?,?)"; $stmt=$pdo->prepare($sql); //3.对?号的参数进行绑定 $id=null; $name="test103"; $age=103; //第一种绑定方式 //$stmt->bindValue(1,$id); //$stmt->bindValue(2,$name); //$stmt->bindValue(3,$age); //第二种绑定方式 //$stmt->bindParam(1,$id); //$stmt->bindParam(2,$name); //$stmt->bindParam(3,$age); //4.执行 //$stmt->execute(); //第三种绑定方式:直接执行数组 $stmt->execute(array($id,$name,$age)); echo $stmt->rowCount();
<?php /** * 别名式的预处理语句,共有三种绑定方式 */ //1.连接数据库 try{ $pdo=new PDO("mysql:host=localhost;dbname=myapp","root",""); }catch (PDOException $e){ die("fail to connect db".$e->getMessage()); } //2.预处理的SQL语句 $sql="INSERT INTO users(id,name,age) VALUES(:id,:name,:age)"; $stmt=$pdo->prepare($sql); //3.参数进行绑定 $id=null; $name="test203"; $age=23; //第一种绑定方式 //$stmt->bindValue("id",$id); //$stmt->bindValue("name",$name); //$stmt->bindValue("age",$age); //第二种绑定方式 //$stmt->bindParam("id",$id); //$stmt->bindParam("name",$name); //$stmt->bindParam("age",$age); //4.执行 //$stmt->execute(); //第三种绑定方式:直接执行数组 $stmt->execute(array("id"=>$id,"name"=>$name,"age"=>$age)); echo $stmt->rowCount();
<?php /** * 用预处理方式查询数据 */ //1.连接数据库 try{ $pdo=new PDO("mysql:host=localhost;dbname=myapp","root",""); }catch (PDOException $e){ die("fail to connect mysql".$e->getMessage()); } //2.预处理查询 $sql="SELECT id,name,age FROM users"; $stmt=$pdo->prepare($sql); //3.执行 $stmt->execute(); foreach($stmt as $val){ echo $val['id']."------".$val['name']."------".$val['age']."<br/>"; }
3. Einführung in die Transaktionsverarbeitungsmethoden
1) beginTransaction() //Eine Transaktion starten (einen Rollback-Punkt erstellen)
2) commit()
//Transaktion festschreiben
3) rollBack() //Transaktions-Rollback-Vorgang
<?php //1.连接数据库 try{ $pdo=new PDO("mysql:host=localhost;dbname=myapp","root",""); $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); }catch (PDOException $e){ die("fail to connect db".$e->getMessage()); } //2.执行数据操作 try{ //开启事物 $pdo->beginTransaction(); $sql="insert into users(id,name,age) VALUES(?,?,?)"; $stmt=$pdo->prepare($sql); //传入参数 $stmt->execute(array(null,"test1","21")); $stmt->execute(array(null,"test2","22")); $stmt->execute(array(null,"test3","23")); //提交事物 $pdo->commit(); }catch (PDOException $e){ die("fail to execute".$e->getMessage()); //事物回滚 $pdo->roolback(); }
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.
Verwandte Empfehlungen:
phpDetaillierte Implementierung der Handhabung von Anfragen mit hoher Parallelität für Eilkäufe
phpSo erhalten Sie die Echtzeit-CPU-Speicherauslastung in Windows
Detaillierte Erklärung der PHP-Halbsuche Algorithmusfall
Das obige ist der detaillierte Inhalt vonPDO-Sicherheitsverarbeitungs- und Transaktionsverarbeitungsmethoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!