이 글은 주로 PDO의 보안 처리 및 거래 처리 방법을 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.
트랜잭션은 데이터베이스를 운영하는 데 매우 중요한 기능입니다. 하나 또는 일련의 SQL 문을 예약한 다음 실행 프로세스 중 하나가 실행에 실패하면 Roll out all을 반환할 수 있습니다. 변경된 작업이 성공적으로 실행되면 이러한 일련의 작업은 영구적으로 효과적입니다. 트랜잭션은 데이터베이스 운영 시 동기화되지 않는 문제를 해결하는 동시에 트랜잭션을 통해 많은 양의 데이터를 실행할 때 실행 효율성이 향상됩니다.
트랜잭션 처리에는 원자성, 일관성, 독립성, 내구성이라는 네 가지 특성이 있습니다. 모든 데이터베이스가 트랜잭션 처리를 지원하는 것은 아닙니다. PDO는 트랜잭션 처리를 수행할 수 있는 데이터베이스에 대한 트랜잭션 지원을 제공합니다.
1. PDO 예외 처리
PDO::ATTR_ERRMODE
1) PDO::ATTR_ERRMODE//오류 보고 안 함(무시) (0)
2) PDO::ERRMODE_WARNING
//경고 포함 비정상적인 방법으로 오류 보고 (1)
3) PDO::ERRMODE_EXCEPTION //비정상적인 방법으로 오류 보고 (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 전처리 방법
1 ) prepare() // 쿼리 SQL 문을 실행하고 PDOStatement 객체를 반환하는 데 사용됩니다
2)bindValue() //해당 매개변수에 값을 바인딩하고 부울 값을 반환합니다
3)binParam() //바인딩 쿼리 자리 표시자에서 부울 값을 반환합니다.
4)bindColumn() //열 이름과 지정된 변수 이름을 일치시키는 데 사용됩니다.
5)execute() //준비된 준비된 문을 실행하고 return Boolean value
6) rowCount() // 추가, 삭제, 수정, 확인 작업문을 사용한 후 영향을 받은 총 행 수를 반환합니다.
2) commit()
//트랜잭션 제출3) RollBack() //트랜잭션 롤백 작업
<?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
Windows에서 실시간 CPU 메모리 사용량을 얻는 방법
위 내용은 PDO 보안 처리 및 트랜잭션 처리 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!