Prepared 문을 사용할 때는 변수를 SQL 쿼리와 올바르게 연결하는 것이 중요합니다. 잘못된 구문은 다음 코드 조각에서 발생하는 것과 같은 오류로 이어질 수 있습니다.
$sql = 'SELECT * FROM `users` WHERE username LIKE \'%{$var}%' '; // Error: Number of variables doesn't match number of parameters $sql = 'SELECT * FROM `users` WHERE username LIKE %{?}% '; // Error: Wrong SQL
이러한 오류를 방지하려면 다음 단계를 따르세요.
$likeVar = "%" . $yourParam . "%";
$stmt = $mysqli->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->bind_param("s", $likeVar);
이 예에서 $likeVar에는 다음과 같은 값이 포함됩니다. 와일드카드("%...%")로 검색합니다. 이를 s(문자열) 매개변수 유형에 바인딩하면 데이터베이스 쿼리에서 올바르게 처리됩니다.
대소문자를 구분하지 않는 검색이 필요한 경우 COLLATE utf8mb4_bin 절을 쿼리:
$stmt = $mysqli->prepare("SELECT * FROM REGISTRY where name LIKE ? COLLATE utf8mb4_bin");
위 내용은 SQL에서 준비된 문과 변수를 올바르게 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!