2013-01-19 3 views
2

쿼리를 실행하려면 mysqli_query PHP 함수를 사용하고 있습니다.mysqli_query - 값을 반환

쿼리가 성공적으로 실행되었지만 쿼리에서 일치하는 항목이없는 경우 mysqli_query은 무엇을 반환합니까?

+0

http://php.net/manual –

+0

설명서 페이지를 읽었 는데도 여전히이 특정 시나리오에 대한 대답이 확실하지 않았습니다. – MadLarkin

답변

9

:

반환, 실패하면 FALSE. SELECT, SHOW, DESCRIBE 또는 EXPLAIN 쿼리가 성공하면 mysqli_query()는 mysqli_result 객체를 리턴한다. 성공한 다른 쿼리의 경우 mysqli_query()는 TRUE를 반환합니다.

쿼리가 데이터베이스에서 실행되고 빈 결과 집합이 합법적 인 응답이기 때문에 실행되지만 결과를 반환하지 않는 쿼리는 여전히 "성공적인 쿼리"로 간주됩니다. 즉, 쿼리는 여전히 mysqli_result 개체를 반환하고 행 수를 확인하면 (개체 지향 스타일에서 $result->num_rows 또는 절차 스타일에서 mysqli_num_rows($result) 통해) 0을 반환합니다.

+0

버전 5.6은 Windows에서 true를 반환하고 null 인 경우 true를 반환합니다. 따라서 일반적인 경우는 아닙니다. ($ result = $ this -> _ mysql-> query ("SELECT SQL_CACHE x1, x2 FROM test_table;")) {/ * 여기에 입력하면 true가되지만 */while ($ res = $ result- > fetch_assoc()) {/ * bla bla bla * /}}' – HellBaby

4

Mysqli_query 개체보다 mysqli_num_rows을 사용하면 반환되는 행 수를 계산할 수 있습니다. 그래서 :

if(mysqli_num_rows($query) > 0){ 
    // Do something 
} 
0
if ($result = $mysqli->query("SELECT * FROM data")) 
{ 
    $count = $result->num_rows; 
    printf("Result set has %d rows.\n", $count); 
    $result->close(); 
} 

reference에서 :

반환 FALSE 실패. SELECT, SHOW, DESCRIBE 또는 EXPLAIN 질의에 성공하면 mysqli_query()는 mysqli_result 객체를 반환 할 것이다. 다른 성공적인 쿼리 mysqli_query()는 TRUE를 반환합니다. manual