2012-10-29 11 views
0

나는 기본적으로 MySQL의 쿼리의 결과를 얻을 다음 PHP가 : mysqli는 빈 결과를 반환 - 표시하는 방법을

$q2 = "SELECT FIELD FROM TABLENAME WHERE ID = 1;"; 
$con = new mysqli($server, $user, $pass); 
if (mysqli_connect_errno()) 
{ 
    $error = mysqli_connect_error(); 
    exit(); 
} 
else 
{ 
    $res = mysqli_query($con, $q2); 
    if ($res) 
    { 
     while($row = mysqli_fetch_assoc($res)) 
     { 
      PRINT "THERE WAS A RESULT HERE: "; 
     } 
    } 
    else 
    { 
     $error = mysqli_error(); 
     exit(); 
    } 
    mysqli_free_result($res); 
}; 
mysqli_close($con); 

그러나 경우에

, 그것은 빈 값을 반환됩니다. 이것은 부모 응용 프로그램의 작동 방식에 따라 유효하지만, 빈 행을 검색하고 "어떻게 비 었습니까?"를 반환 할 수 있습니까?

+0

"빈 행을"정의 바랍니다. 반환 된 행이 없음을 의미합니까? 또는 * FIELD *가'NULL'이거나 빈 문자열 ('' "') 인 행 하나 안에? – hakre

답변

4

PHP 매뉴얼에서 mysqli_num_rows()를 검색 할 수 있습니다. 이전 쿼리에서 생성 된 결과 집합에있는 행 수를 확인할 수 있습니다. 행 수를 사용하여 결과를 표시 할 것인지 아니면 "일치하는 결과가 없음"메시지를 표시 할 것인지 결정할 수 있습니다.

+0

그 덕분에, 내가 놓친 것이 었습니다. – IGGt

2

도움이되기를 바랍니다.

if ($res) 
{ 
    if($res->num_rows) { 
     while($row = mysqli_fetch_assoc($res)) 
     { 
      PRINT "THERE WAS A RESULT HERE: "; 
     } 
    } 
    else { 
      PRINT "THERE WAS A EMPTY ROW: "; 
    } 
} 

은 참조 : 내가 함께 결국 그것에 대해 php.net

0

감사 :

$q2 = "SELECT FIELD FROM TABLENAME WHERE ID = 1;"; 
$con = new mysqli($server, $user, $pass); 
if (mysqli_connect_errno()) 
{ 
    $error = mysqli_connect_error(); 
    exit(); 
} 
else 
{ 
$res = mysqli_query($con, $q2); 

$row_cnt = mysqli_num_rows($res); 

if ($row_cnt == 0) 
{ 
     PRINT "THERE WAS NO RESULT: "; 
} 

else 
{  
if ($res) 
{ 
    while($row = mysqli_fetch_assoc($res)) 
    { 
     PRINT "THERE WAS A RESULT HERE: "; 
    } 
} 
else 
{ 
    $error = mysqli_error(); 
    exit(); 
} 
mysqli_free_result($res); 
} 
}; 
mysqli_close($con); 
0

내 PHP 함수를 쿼리 핸들 :

private function query($sql_query){ 

     $result = $this->connection->query($sql_query); 

     if(!$result){   //query fail 
      throw new Exception($this->connection->error.$sql_query); 
     }else {//     "SUCCESS"; 
      if(!$result->num_rows) 
      { 
       throw new Exception("THERE WAS NO RESULT: "); 
      } 
      for ($res = array(); $tmp = $result->fetch_array(MYSQLI_BOTH);){ 
       $res[] = $tmp;     
      } 
      return $res; 
     } 
    }