mysql 라이브러리에서 PDO로 전환할 때 real_escape_string에서 사용한 것처럼 이스케이프 문자열이 필요할 수 있습니다. PDO에서는 보다 안전하고 효율적인 접근 방식을 활용할 수 있습니다.
PDO는 매개변수화된 쿼리를 실행할 수 있는 prepare() 메서드를 제공합니다. 매개변수화는 SQL 문을 실행하기 전에 사용자 입력을 삭제하여 SQL 주입 공격을 방지하는 데 도움이 됩니다. 또한 쿼리 계획을 캐싱하여 성능을 최적화하므로 수동으로 문자열을 인용할 필요가 없습니다.
PDO::prepare()를 사용하여 작은따옴표를 이스케이프하려면 다음 단계를 따르세요.
준비하세요 명령문:
$stmt = $pdo->prepare("INSERT INTO table (column) VALUES (:value)");
매개변수 바인딩:
$stmt->bindParam(':value', $escapedValue);
실행 명령문:
$stmt->execute();
이 예에서 :value는 이스케이프된 값에 대한 자리 표시자이며, 이 값은 binParam()을 사용하여 할당할 수 있습니다. PDO 드라이버는 자동으로 작은따옴표 이스케이프를 처리합니다.
매개변수 바인딩에 PDO::prepare()를 사용하면 보안 및 성능 이점을 모두 얻을 수 있으며 필요성을 제거할 수 있습니다. 수동 문자열 이스케이프용. 이는 SQL 주입을 방지하고 데이터베이스 상호 작용을 최적화하기 위해 PDO 애플리케이션에서 권장되는 방식입니다.
위 내용은 `mysql_real_escape_string`을 사용하지 않고 PDO에서 문자열을 안전하게 이스케이프하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!