2011-01-04 2 views
2

는 그래서 mysqli 개체를 사용하여 쿼리를 만들기위한 올바른 형식은 다음과 같습니다올바른 mysqli 객체의 논리를 설명

if ($result = $hookup->query($sql)) 

하지 :

if ($result == $hookup->query($sql)) 

왜 모든이가 있다고 가정 않습니다 케이스? 올바른 형식 뒤에있는 논리는 무엇입니까?

답변

0

다른 상황에서 사용되는 두 가지가 있습니다.

첫번째 예 (하나 = 함께) 의미 :

query()의 결과에 해당하는 경우 - 아와 방법에 의해, 그 결과를 할당하는 새로운 변수 $result - 다음이 수행 .. ..

결과를 한 번에 지정하고 확인하는 것은 간단합니다. 당신이 보여주는 맥락에서, 이것은 보통 당신이 원하는 것입니다. $result의 값이 다음 수행 query() 호출의 리턴 값과 같으면

두 번째 예 (두 ==)는

수단 .....

3

첫 번째 예 (올바른 것) 의 결과를 $hookup->query($sql)$result으로 할당 한 다음 if에서 "진실성"으로 평가합니다.

번째 예는 $hookup->query($sql)의 결과 $result의 값을 기존과 비교한다. $result이 아직 "truey"가 아니면 if은 false로 평가됩니다.

1

mysqli_query에서 반환 할 수 없거나 실패하면 false입니다.

if (false) ... always false 
if (mysqli_result) ... always true 

그러나, 나는 항상 같은 나중에 사용하기 위해 저장 $의 결과로 더 많은 유연성이 아직 예외를 보장 할 수 있도록이 작업을 수행

$result = $hookup->query($sql; 
if ($result instanceof mysqli_result) 
{ 
    /* query success, proceed with something else */ 
} 
else 
{ 
    /* query fail, execption */ 
}