2012-01-16 3 views
0

이 코드를 시도하고 있지만이 쿼리의 결과 개수를 알고 싶습니다. mysql 콘솔에서 동일한 쿼리를 수행하면 4 개의 결과를 얻지 만이 코드를 사용하면 0 개의 행이 생성됩니다. 행 수를 얻는 올바른 방법은 무엇입니까? $sql->fetch_all() 시도 -행 수 - mysqli

function check_oferta_existe($db, $id, $id_oferta) { 
      $sql = $db -> prepare(" 
      SELECT COUNT(offer) 
      FROM offer 
      WHERE company_users_id_user1 = ? AND offer = ? AND state = 0 
      "); 

      $sql -> bind_param('is', $id, $oferta); 
      $sql -> execute(); 
      $sql -> fetch(); 
      $sql->store_result(); 
      $rows = $sql->num_rows; 

      var_dump($rows); // 0, should be 4 
      if ($rows == 1) { 
       return true; 
      } 
      else { 
       return false; 
      }; 
     } 
+0

'num_rows'는 실제로 속성이므로 문제가되지 않습니다. SQL 문을 확인하십시오. 실패 할 가능성이 있습니다. –

답변

3

코드에 2 개의 오류가 있습니다. 이 진술 할 때 :

$sql -> bind_param('is', $id, $oferta); 

을 당신은 $oferta를 사용하지만, var에 $id_oferta해야한다고 (함수 매개 변수)를 찾고 보인다.

또한 else의 닫는 괄호 뒤에는 세미콜론 만 있으면 안됩니다.

+0

행운의 세미콜론을 해체하지 마라 :) – Tim

+0

나는 계산을하고있다. 그래서 분명히 행의 개수는 항상 동일하다. – Daniel

+0

그러나 올바른 것입니다. 나는이 매개 변수들을 잊어 버렸다. – Daniel

3

$sql->fetch()는 함수가 아닙니다.

그러면 모든 행을 가져와야하고 $sql->num_rows 변수가 정확해야합니다.