> 백엔드 개발 > PHP 튜토리얼 > `mysqli_real_escape_string()`이 '정확히 2개의 매개변수를 기대하고 1개가 주어짐'을 발생시키는 이유는 무엇입니까?

`mysqli_real_escape_string()`이 '정확히 2개의 매개변수를 기대하고 1개가 주어짐'을 발생시키는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-04 14:50:10
원래의
440명이 탐색했습니다.

Why Does `mysqli_real_escape_string()` Throw

"mysqli_real_escape_string()에는 정확히 2개의 매개변수가 필요하며 1개는 제공됨" 오류 해결

"mysqli_real_escape_string()" 함수는 방지하기 위해 문자열의 특수 문자를 이스케이프하도록 설계되었습니다. SQL 주입 공격. 그러나 "mysqli_real_escape_string()에는 정확히 2개의 매개변수가 필요하며 1개가 주어졌습니다."라는 오류가 발생할 수 있는 특정 매개변수 요구사항이 있습니다.

문제 분석:

제공된 코드 PHP 버전을 확인하고 그에 따라 "mysqli_real_escape_string()"을 사용하려고 시도합니다. 그러나 함수 호출에는 이스케이프할 문자열만 포함되어 있으며 첫 번째 필수 매개변수인 mysqli 링크가 누락되었습니다.

문서 설명:

공식 문서에 따르면, "mysqli_real_escape_string()"에는 두 개가 필요합니다. 매개변수:

  1. mysqli $link: 설정된 MySQLi 연결에 대한 참조.
  2. string $escapestr: 문자열

해결책:

오류를 해결하려면 "mysqli_real_escape_string()" 함수를 호출할 때 코드에 두 매개 변수가 모두 포함되어야 합니다. 업데이트된 버전은 다음과 같습니다.

if (phpversion() >= '4.3.0') {
    $string = mysqli_real_escape_string($link, $string);
} else {
    $string = mysqli_escape_string($link, $string);
}
로그인 후 복사

mysqli 링크가 첫 번째 매개변수로 제공되도록 함으로써 "mysqli_real_escape_string()" 함수가 입력 문자열을 적절하게 이스케이프하고 SQL 주입 취약점을 방지합니다.

위 내용은 `mysqli_real_escape_string()`이 '정확히 2개의 매개변수를 기대하고 1개가 주어짐'을 발생시키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿