PDO가 단일 문에서 여러 쿼리를 지원하지 않는다는 인식에도 불구하고 PDO_MYSQL 및 PDO_MYSQLND가 이 기능을 제공합니다.
PDO_MYSQL은 PHP 5.3에서 PDO_MYSQLND로 대체되었습니다. 혼란스럽게도 이름은 여전히 PDO_MYSQL이지만 PDO_MYSQLND는 MySQL PDO의 기본 드라이버입니다.
여러 쿼리를 동시에 실행하려면 다음 요구 사항을 충족해야 합니다.
사용 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!