php
  • mysql
  • mysql-num-rows
  • 2011-09-27 4 views 4 likes 
    4

    가능한 중복 :
    mysql_fetch_array() expects parameter 1 to be resource, boolean given in select여부

    그래서 나는 다음과 같은 쿼리가

    $numUsersSameRatingQuery="SELECT * `user ratings` WHERE category='$category' AND categoryId='$categoryId' AND `userAromaRating`>0 "; 
    
        $result=mysql_query($numUsersSameRatingQuery); 
    
        $numResults=mysql_num_rows($result); 
    
        if($numResults==0) 
        { 
        // do the INSERT INTO 
        } 
        else 
        { 
        //do the UPDATE SET 
        } 
    
    어떤 결과를 반환 아닌지 확인하려고

    그러나 위 오류는 다음과 같은 오류를 반환하고 if($numResults)은 anywa가 실행됩니다. 각 시간마다. 즉, 나는 결코 else 블록을 실행할 수 없습니다.

    여기

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\boozeDb\profileThis.php on line 141 
    

    가 될것이다 도움 오류이다.

    답변

    8

    is_resource을 사용하여 리소스인지 확인할 수 있습니다. 또는 if 문을 사용하여 FALSE이 반환되지 않았는지 확인할 수 있습니다.

    오류를 표시하려면 mysql_error을 사용하십시오.

    예 :

    <?php 
    
    // From http://ca2.php.net/manual/en/function.mysql-query.php 
    
    $result = mysql_query('SELECT * WHERE 1=1'); 
    if (!$result) { 
        trigger_error('Invalid query: ' . mysql_error()); 
    } 
    
    2

    는 mysql_query() 중 하나 명령문 핸들 (쿼리가 성공) 또는 부울 FALSE (쿼리 실패)을 반환합니다. 귀하의 코드는 오류 조건을 확인하지 않으며 맹목적으로 성공을 가정합니다. 이처럼 보이도록 코드를 수정 :

    $result=mysql_query($numUsersSameRatingQuery) or trigger_error(mysql_error()); 
                  ^^^^^^^^^^^^^^^^^^^^^^--- add this 
    

    샘플 쿼리, 당신은 FROM 키워드를 놓치고, 아마해야 감안할 때 :

    SELECT * FROM `user ratings` 
         ^^^^^^ 
    

    내가 가 강력히 사용하지하도록 촉구 공백을 포함하는 필드 이름. 그들은 단지 문제 일뿐입니다.

    0

    다른 모든 사람들이 주석 처리 한 것처럼 if 문이나 "die()"는 오류를 다시 생성하지 않을 수 있지만 오류는 누락 된 "FROM"에서 비롯됩니다.

    테이블의 일부 또는 모든 열이 중복되는 것을 방지하기 위해 이제는 두 가지 쿼리를 작성한다는 사실에 대해 논평 할 필요가 있습니다. SELECT 및 INSERT. 이것은 하나 개의 쿼리에서 할 수 있으며, 코드 속도를 높일 것 .. DUPLICATE KEY UPDATE .. (이미있는 경우 업데이트하는 것) ON ..

    INSERT를 ... (삽입 할 것을)

    여기에 대한 자세한 내용은 MySQLs manual page about it.

    관련 문제