2013-06-24 6 views
0

여기에 여러 번 묻는 것으로 알고 있으며, 모든 가능한 해결책을 시도했습니다. 왜 내 쿼리가 데이터를 반환하는지 상관없이 false를 반환하는 이유에 대해 본질적으로 잘못된 쿼리가있을 수 있습니까?MySQL의 행 수가 항상 false를 반환합니다.

$q_log_dates = "SELECT * FROM log_dates WHERE week_date ='" . $currentWeek . "'"; 
$q_log_dates_result = mysqli_query($connection, $q_log_dates); 
$numResults = mysqli_num_rows($q_log_dates_result); 

if ($numResults > 0) { 
    echo "data"; 
} else { 
    echo "no data"; 
} 
+5

MySQL과 MySQLi를 섞어서는 안됩니다. "선택하고 혼합하지 마십시오" –

+0

mysql_error()가 어떤 것을 제공합니까? – Voitcus

+0

솔루션을 반영하도록 위 질문 (코드)을 업데이트했습니다. – user1040259

답변

3

개체 지향 MySQLi 기능을 사용하면됩니다. 귀하의 경우 $q_log_dates_result은 개체이며 해당 속성을 사용할 수 있습니다.

$q_log_dates_result = mysqli_query($connection, $q_log_dates); //-Procedural 
//OR $q_log_dates_result = $connection->query($q_log_dates); //Object oriented 
if ($q_log_dates_result->num_rows > 0) { 
    echo "data"; 
} else { 
    echo "no data"; 
} 
+0

완벽한 감사합니다 !! – user1040259

+1

객체 지향 PHP를 사용하려면 완전히 사용해야합니다. – PHPglue

+0

$ db = new mysqli (도메인, 사용자 이름, 비밀번호, 데이터베이스)를 사용하는 의미. 다른 보안 PHP 페이지에서 사용중인 PHP 페이지에 포함하십시오. 그런 다음 $ res = $ db-> query (여기에서 쿼리 문자열);라고 말할 수 있습니다. 또한 $ res-> free(); $ res-> num_rows 및 결과를 얻은 후 결과 및 $ db-> close(); 서버 측 성능 향상을위한 연결. – PHPglue

1

mysqli_query는 객체의 유형을 반환합니다. 여기서 mysql_num_rows는 매개 변수 1이 resource 일 것으로 예상합니다. mysqli_ * 함수를 mysql_ * 함수와 함께 사용할 수 없다.

I의 높은 $에 대한 numResults 있도록, 당신이 사용한다, 당신은

mysqli_query 

를 사용하는

1

등 이미 언급 MySQLi으로 다른 도서관에 mysql_로 * 사람을 사용하여 삭제하고 충실하는 것이 좋습니다

mysqli_num_rows