> 백엔드 개발 > PHP 튜토리얼 > PDO_MYSQL 및 PDO_MYSQLND가 하나의 명령문에서 여러 SQL 쿼리를 실행할 수 있습니까?

PDO_MYSQL 및 PDO_MYSQLND가 하나의 명령문에서 여러 SQL 쿼리를 실행할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-12-23 13:22:54
원래의
974명이 탐색했습니다.

Can PDO_MYSQL and PDO_MYSQLND Execute Multiple SQL Queries in One Statement?

여러 쿼리에 대한 PDO 지원(PDO_MYSQL, PDO_MYSQLND)

PDO가 단일 문에서 여러 쿼리를 지원하지 않는다는 인식에도 불구하고 PDO_MYSQL 및 PDO_MYSQLND가 이 기능을 제공합니다.

PDO_MYSQL 및 PDO_MYSQLND

PDO_MYSQL은 PHP 5.3에서 PDO_MYSQLND로 대체되었습니다. 혼란스럽게도 이름은 여전히 ​​PDO_MYSQL이지만 PDO_MYSQLND는 MySQL PDO의 기본 드라이버입니다.

여러 쿼리를 실행하는 방법

여러 쿼리를 동시에 실행하려면 다음 요구 사항을 충족해야 합니다.

  • PHP 5.3 이상
  • mysqlnd 확장
  • 에뮬레이트된 준비된 문(PDO::ATTR_EMULATE_PREPARES가 1로 설정됨(MySQL의 기본값))

여러 쿼리 실행 방법

사용 exec:

$db = new PDO("mysql:host=localhost;dbname=test;charset=utf8mb4", 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "DELETE FROM car; 
INSERT INTO car(name, type) VALUES ('car1', 'coupe'); 
INSERT INTO car(name, type) VALUES ('car2', 'coupe');";

$db->exec($sql);
로그인 후 복사

문 사용:

$db = new PDO("mysql:host=localhost;dbname=test;charset=utf8mb4", 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "DELETE FROM car; 
INSERT INTO car(name, type) VALUES (:car1, :type1); 
INSERT INTO car(name, type) VALUES (:car2, :type2);";

$stmt = $db->prepare($sql);
$stmt->execute(["car1" => "brand1", "type1" => "coupe", "car2" => "brand2", "type2" => "coupe"]);

// Check for errors and collect query results
do {
    echo $pdo->lastInsertId(); // for example
} while ($stmt->nextRowset());
로그인 후 복사

참고: 에뮬레이트된 준비된 문을 사용할 때 적절한 인코딩을 설정하세요. 잠재적인 SQL 주입 취약점을 방지하기 위해 DSN에 저장하세요.

위 내용은 PDO_MYSQL 및 PDO_MYSQLND가 하나의 명령문에서 여러 SQL 쿼리를 실행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿