SQL 주입 완화를 통해 MySQLi에서 여러 행을 효율적으로 삽입
PHP 및 MySQLi를 사용하여 MySQL 데이터베이스에 많은 수의 행을 삽입하려면 다음이 필요합니다. 안전하고 효율적인 기술입니다. 이러한 데이터 볼륨을 처리하는 동안 SQL 주입을 피하는 것은 어려울 수 있습니다.
해결 방법
이 문제를 해결하려면 트랜잭션을 사용하여 삽입 작업을 그룹화하는 것을 고려하세요. 이 접근 방식에는 아래와 같이 준비 및 바인딩 작업을 루프 외부로 이동하는 작업이 포함됩니다.
$array = array("array", "with", "about", "2000", "values"); $query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); $mysqli->query("START TRANSACTION"); foreach ($array as $one) { $stmt->execute(); } $stmt->close(); $mysqli->query("COMMIT");
트랜잭션의 이점
구현
전체 삽입을 보장하려면 PHP 루프 외부에서 START TRANSACTION 및 COMMIT 쿼리를 실행해야 합니다. 작업은 단일 트랜잭션으로 처리됩니다. 이 접근 방식은 준비된 문의 보안과 대량 삽입의 효율성을 결합하는 동시에 스택 오버플로를 완화합니다.
위 내용은 SQL 주입을 방지하면서 MySQLi에 여러 행을 효율적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!