>백엔드 개발 >PHP 튜토리얼 >PDO 준비된 문을 사용하여 MySQL에 여러 행을 안전하게 삽입하려면 어떻게 해야 합니까?

PDO 준비된 문을 사용하여 MySQL에 여러 행을 안전하게 삽입하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-29 03:25:22907검색

How Can I Securely Insert Multiple Rows into MySQL Using PDO Prepared Statements?

PDO 준비된 문을 사용한 MySQL 다중 행 삽입

준비된 문은 정적 쿼리에 비해 향상된 보안을 제공합니다. MySQL에서는 단일 쿼리로 여러 행의 값을 삽입하면 이러한 보안 이점을 누릴 수도 있습니다.

준비된 문으로 여러 행 삽입 구현

다음을 사용하여 여러 행을 삽입하려면 PDO의 준비된 명령문:

  1. 값 생성 순서: 테이블의 열 수를 결정하고 각 열에 대한 자리 표시자('?,') 문자열을 만듭니다.
  2. 쿼리 구성: SQL INSERT 문 구성 각 행에 대해 자리 표시자 시퀀스를 반복하는 VALUES 절을 사용합니다.
  3. 명령문: $db->prepare를 사용하여 SQL 문을 준비합니다.
  4. 행 값 병합: 모든 행의 값을 단일 병합 배열로 결합합니다.
  5. 문 실행: 다음과 같이 병합된 배열과 함께 $stmt->execute를 사용하여 준비된 문을 실행합니다.

예제 코드:

// Placeholder sequence for a single row
$values = str_repeat('?,', count($row) - 1) . '?';
// Construct the query
$sql = "INSERT INTO table (columnA, columnB) VALUES " .
    str_repeat("($values),", count($rows) - 1) . "($values)";
// Prepare the statement
$stmt = $db->prepare($sql);
// Merge row values
$values = array_merge(...$rows);
// Execute the statement
$stmt->execute($values);

이 접근 방식은 쿼리를 동적으로 구성하지만 상수 자리 표시자와 열 이름을 사용하여 보안을 보장합니다. 다양한 PHP 버전의 MySQLi 및 PDO와 모두 호환됩니다.

위 내용은 PDO 준비된 문을 사용하여 MySQL에 여러 행을 안전하게 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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