>데이터 베이스 >MySQL 튜토리얼 >`mysqli_num_rows()`가 결과 세트 대신 부울 값을 반환하는 이유는 무엇입니까?

`mysqli_num_rows()`가 결과 세트 대신 부울 값을 반환하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-07 19:49:14688검색

Why Does `mysqli_num_rows()` Return a Boolean Instead of a Result Set?

PHP 및 MySQL: "mysqli_num_rows()에서 매개변수 1이 mysqli_result, boolean이 주어질 것으로 예상합니다." 오류 해결

"mysqli_num_rows() 매개변수 1이 mysqli_result, boolean이 될 것으로 예상합니다. 주어진"은 mysqli_num_rows() 함수에 제공된 입력이 유효한 결과 세트가 아님을 나타냅니다. 이 오류는 입력 인수가 성공적인 쿼리 실행의 결과가 아닐 때 자주 발생합니다.

이 특정한 경우 PHP 코드의 다음 줄에서 오류가 발생합니다.

if (mysqli_num_rows($dbc) == 0) {

여기서 변수 $dbc는 mysqli_num_rows()에 대한 입력으로 사용되지만 $dbc에서 실행된 쿼리에 다음이 포함되어 있으므로 false를 반환합니다. 오류:

$dbc = mysqli_query($mysqli,"SELECT users.*, profile.*
                                 FROM users 
                                 INNER JOIN contact_info 
                                 ON contact_info.user_id = users.user_id 
                                 WHERE users.user_id=3");

쿼리의 오류는 사용자와 프로필 테이블 사이에 JOIN 키워드가 없다는 것입니다.

SELECT users.*, profile.* --You do not join with profile anywhere.
                                 FROM users 
                                 INNER JOIN contact_info 
                                 ON contact_info.user_id = users.user_id 
                                 WHERE users.user_id=3");

문제를 해결하려면 쿼리를 다음과 같이 수정해야 합니다.

$dbc = mysqli_query($mysqli,"SELECT users.*, profile.*
                                 FROM users 
                                 INNER JOIN profile 
                                 ON contact_info.user_id = users.user_id 
                                 WHERE users.user_id=3");

쿼리를 수정하면 mysqli_num_rows() 함수가 이제 유효한 결과 세트를 수신하고 다음을 수행할 수 있습니다. 결과의 행 수가 0인지 확인합니다.

위 내용은 `mysqli_num_rows()`가 결과 세트 대신 부울 값을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.