>백엔드 개발 >PHP 튜토리얼 >PDO 보안 처리 및 트랜잭션 처리 방법

PDO 보안 처리 및 트랜잭션 처리 방법

墨辰丷
墨辰丷원래의
2018-05-31 09:43:011236검색

이 글은 주로 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,&#39;dabao&#39;,&#39;26&#39;)"; 
try{ 
  $res=$pdo->exec($sql); 
}catch (PDOException $e){ 
  echo $e->getMessage(); 
} 
//$res=$pdo->exec($sql); 
//if($res){ 
//  echo &#39;OK&#39;; 
//}else{ 
//  echo $pdo->errorCode(); 
//  echo &#39;<br/>&#39;; 
//  print_r($pdo->errorInfo()); 
//}

2.PDO 전처리 방법

1 ) prepare() // 쿼리 SQL 문을 실행하고 PDOStatement 객체를 반환하는 데 사용됩니다

2)bindValue() //해당 매개변수에 값을 바인딩하고 부울 값을 반환합니다

3)binParam() //바인딩 쿼리 자리 표시자에서 부울 값을 반환합니다.

4)bindColumn() //열 이름과 지정된 변수 이름을 일치시키는 데 사용됩니다.

5)execute() //준비된 준비된 문을 실행하고 return Boolean value

6) rowCount() // 추가, 삭제, 수정, 확인 작업문을 사용한 후 영향을 받은 총 행 수를 반환합니다.

Three.트랜잭션 처리 연산 방법 소개

1) startTransaction() //트랜잭션 열기(롤백 지점 만들기)

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

급한 구매에 대한 높은 동시성 요청 처리에 대한 자세한 구현

php
Windows에서 실시간 CPU 메모리 사용량을 얻는 방법

PHP 반 알고리즘 사례 찾기 자세한 설명

위 내용은 PDO 보안 처리 및 트랜잭션 처리 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.