집 >데이터 베이스 >MySQL 튜토리얼 >mysql_*에서 PDO로 마이그레이션할 때 사용자 입력을 피하는 방법은 무엇입니까?
질문:
mysql_*에서 PDO로 마이그레이션할 때, mysql_real_escape_string 함수?
답변:
mysql_real_escape_string과 달리 PDO는 준비된 문을 사용하여 자동 이스케이프를 수행합니다. 준비된 문은 사용자 입력을 SQL 쿼리에 직접 삽입하는 대신 자리 표시자(예: ?)를 사용하여 SQL 삽입 취약점을 방지합니다.
예:
<code class="php">try { $db = new PDO(...); } catch (PDOException $e) { echo "Error connecting to mysql: " . $e->getMessage(); } if (isset($_POST['color'])) { $stmt = $db->prepare("SELECT id, name, color FROM Cars WHERE color = ?"); $stmt->execute([$_POST['color']]); $cars = $stmt->fetchAll(\PDO::FETCH_ASSOC); var_dump($cars); }</code>
이 예에서는 , $_POST['color']는 준비된 문의 매개변수로 전달되어 쿼리 삽입을 방지합니다.
추가 참고 사항:
위 내용은 mysql_*에서 PDO로 마이그레이션할 때 사용자 입력을 피하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!