MySQL 문에 PHP 변수를 포함하는 방법
P粉595605759
P粉595605759 2023-09-16 21:28:26
0
2
597

콘텐츠 테이블에 값을 삽입하려고 합니다. VALUES에 PHP 변수가 없으면 제대로 작동합니다. 그런데 변수 $type放在VALUES를 넣으면 작동하지 않습니다. 내가 뭘 잘못했나요?

으으으으

P粉595605759
P粉595605759

모든 응답(2)
P粉239089443

SQL 삽입을 방지하기 위해 삽입 문은 다음과 같습니다.

으아아아
P粉036800074

MySQL 문에 PHP 변수를 추가하는 규칙은 간단하고 간단합니다.

1. 준비된 진술을 사용하세요

이 규칙은 99%의 검색어에 적용되며 귀하의 검색어에도 적용됩니다. SQL 데이터 리터럴(또는 간단히 SQL 문자열이나 숫자)을 나타내는 모든 변수는 준비된 문을 통해 추가되어야 합니다. 예외없이.

이 방법은 네 가지 기본 단계로 구성됩니다.

  • SQL 문에서 모든 변수자리 표시자
  • 로 바꿉니다.
  • 검색어를 준비하세요
  • 자리 표시자에 변수 바인딩
  • 쿼리 실행

모든 인기 있는 PHP 데이터베이스 드라이버에서 이를 달성하는 방법은 다음과 같습니다.

데이터 리터럴을 추가하려면 mysqli를 사용하세요

현재 PHP 버전에서는 단일 호출로 준비/바인딩/실행이 가능합니다.

으아아아

이전 버전의 PHP를 사용하는 경우 명시적으로 준비/바인딩/실행을 수행해야 합니다.

으아아아

이 코드는 약간 복잡하지만 이러한 모든 연산자에 대한 자세한 설명은 내 기사 Mysqli를 사용하여 INSERT 쿼리를 실행하는 방법과 프로세스를 많이 단순화할 수 있는 솔루션에서 찾을 수 있습니다.

SELECT 쿼리의 경우 위와 동일한 방법을 사용할 수 있습니다.

으아아아

그러나 이전 버전의 PHP를 사용하는 경우 준비/바인딩/실행 루틴을 수행해야 하며 일반적인 방법으로 데이터를 추출할 수 있는 get_result()方法,以便从中获取一个熟悉的mysqli_result를 호출해야 합니다.

으아아아
PDO를 사용하여 데이터 리터럴 추가
으아아아

PDO에서는 바인딩 부분과 실행 부분을 함께 병합할 수 있어 매우 편리합니다. PDO는 또한 일부 사람들이 매우 편리하다고 생각하는 명명된 자리 표시자를 지원합니다.

2. 화이트리스트 필터링을 사용하세요

SQL 키워드, 테이블이나 필드 이름, 연산자 등 기타 쿼리 부분은 화이트리스트를 통해 필터링해야 합니다.

때로는 키워드나 식별자(데이터베이스, 테이블 또는 필드 이름)와 같이 쿼리의 다른 부분을 나타내는 변수를 추가해야 합니다. 이는 드문 상황이지만 준비하는 것이 가장 좋습니다.

이 경우 스크립트에 명시적으로 작성된 값 목록과 비교하여 변수를 확인해야 합니다. 이에 대한 자세한 내용은 내 다른 기사 사용자 선택에 따라 ORDER BY 절에 필드 이름 추가:

예는 다음과 같습니다.

으아아아 으아아아

이와 같은 코드를 작성한 후에는

변수가 허용된 변형 중 하나와 같거나 오류가 발생하므로 안전하게 SQL 쿼리에 넣을 수 있습니다. $direction$orderby

마지막으로 언급할 점은 식별자의 형식도 특정 데이터베이스 구문에 따라 지정되어야 한다는 것입니다. MySQL의 경우 식별자는

문자로 묶여야 합니다. 따라서 ORDER BY 예제의 최종 쿼리 문자열은 다음과 같아야 합니다. backtick 으아아아

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿