콘텐츠 테이블에 값을 삽입하려고 합니다. VALUES에 PHP 변수가 없으면 제대로 작동합니다. 그런데 변수 $type
放在VALUES
를 넣으면 작동하지 않습니다. 내가 뭘 잘못했나요?
P粉0368000742023-09-17 10:48:29
MySQL 문에 PHP 변수를 추가하는 규칙은 간단하고 간단합니다.
이 규칙은 99%의 검색어에 적용되며 귀하의 검색어에도 적용됩니다. SQL 데이터 리터럴(또는 간단히 SQL 문자열이나 숫자)을 나타내는 모든 변수는 준비된 문을 통해 추가되어야 합니다. 예외없이.
이 방법은 네 가지 기본 단계로 구성됩니다.
모든 인기 있는 PHP 데이터베이스 드라이버에서 이를 달성하는 방법은 다음과 같습니다.
mysqli
를 사용하세요현재 PHP 버전에서는 단일 호출로 준비/바인딩/실행이 가능합니다.
으아아아이전 버전의 PHP를 사용하는 경우 명시적으로 준비/바인딩/실행을 수행해야 합니다.
으아아아이 코드는 약간 복잡하지만 이러한 모든 연산자에 대한 자세한 설명은 내 기사 Mysqli를 사용하여 INSERT 쿼리를 실행하는 방법과 프로세스를 많이 단순화할 수 있는 솔루션에서 찾을 수 있습니다.
SELECT 쿼리의 경우 위와 동일한 방법을 사용할 수 있습니다.
으아아아 그러나 이전 버전의 PHP를 사용하는 경우 준비/바인딩/실행 루틴을 수행해야 하며 일반적인 방법으로 데이터를 추출할 수 있는 get_result()
方法,以便从中获取一个熟悉的mysqli_result
를 호출해야 합니다.
PDO에서는 바인딩 부분과 실행 부분을 함께 병합할 수 있어 매우 편리합니다. PDO는 또한 일부 사람들이 매우 편리하다고 생각하는 명명된 자리 표시자를 지원합니다.
SQL 키워드, 테이블이나 필드 이름, 연산자 등 기타 쿼리 부분은 화이트리스트를 통해 필터링해야 합니다.
때로는 키워드나 식별자(데이터베이스, 테이블 또는 필드 이름)와 같이 쿼리의 다른 부분을 나타내는 변수를 추가해야 합니다. 이는 드문 상황이지만 준비하는 것이 가장 좋습니다.
이 경우 스크립트에 명시적으로 작성된 값 목록과 비교하여 변수를 확인해야 합니다. 이에 대한 자세한 내용은 내 다른 기사 사용자 선택에 따라 ORDER BY 절에 필드 이름 추가:
예는 다음과 같습니다.으아아아 으아아아
이와 같은 코드를 작성한 후에는변수가 허용된 변형 중 하나와 같거나 오류가 발생하므로 안전하게 SQL 쿼리에 넣을 수 있습니다. $direction
和$orderby
문자로 묶여야 합니다. 따라서 ORDER BY 예제의 최종 쿼리 문자열은 다음과 같아야 합니다. backtick
으아아아