2010-05-28 4 views
0

나는이 코드를 가지고 있지만 이상하게도 FLD2에 '555'와 같은 값이 없거나 FLD2가 전혀 없더라도 항상 "예!"라는 메시지를 울립니다.어디에서 FROM을 선택 하시겠습니까?

$testresult = mysqli_query($database, "SELECT * FROM imei359327039828680 WHERE FLD2 = '555'"); 

if ($testresult) { echo('yes!'); } else { echo('no!'); } 

감사합니다.

답변

1

으로는 ctshryock에 의해 언급, 잘 형성 SQL 쿼리의 반환 값으로 변수 세트는 항상 사실로 볼 수 있습니다.

데이터가 반환되었는지 테스트하려면 mysql_num_rows()PHP Documentation을 사용하여 반환되는 행 수를 반환합니다. 쿼리가 어떤 행과도 일치하지 않으면이 함수는 을 반환해야합니다. 이는 falseif() 조건으로 표시됩니다.

$testresult = mysql_query("SELECT * FROM imei359327039828680 WHERE FLD2 = '555'"); 

if(!$testresult) 
    die('SQL Error'); # The SQL Query Failed for some reason 

if(mysql_num_rows($testresult)) 
    die('SQL Returned No Result'); # The SQL Query returned nothing 

while($r = mysql_fetch_assoc($testresult)) { 
    # Process your returned rows here 
} 
1

mysqli_query은 쿼리가 어떻게 든 실패하지 않는 한 항상 결과 개체를 반환합니다. 쿼리가 아무런 결과도 반환하지 않으면 여전히 결과 개체를 얻습니다. 그 안에 행이 없습니다.

+0

THNAKS, 이제 작동합니다! $ testresult = mysqli_query ($ database, "SELECT * FROM imei359327039828680 WHERE FLD2 = '555'"); $ testrow = mysqli_fetch_array ($ testresult); if ($ testrow) {echo ('yes!'); } else {echo ('no!'); } –

1

$testresult이 참일 경우 테스트 중이며 예상되는 결과는 아닙니다. 쿼리가 유효하거나 올바르게 구성된 경우 유효한 개체가 반환됩니다. $testresult 반환 값을 조사하여 무언가를 찾았는지 확인하십시오. 부울 대상으로 검토 할 때

관련 문제