mysql_query返回true而不是Resource

时间:2014-04-12 15:33:45

标签: php mysql

我面临着非常奇怪的问题。 mysql_query返回true而不是SELECT的资源ID。

$query =  "SELECT s.id, s.lesson_code, l.lesson_name, t.teacher_name 
           FROM student_comment s 
           LEFT JOIN classes l 
             ON s.lesson_code = l.lesson_code 
           LEFT JOIN teacher t 
             ON s.teacher_id = t.id 
           WHERE s.school_id = '" .$_GET['school_id']. "' 
           ORDER BY s.id DESC";

然而;当我在phpMyAdmin中执行此查询时,它给出了确切的结果。 但是同样的查询在PHP页面中给出了以下错误。

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\web\htdocs\test\home\question.php on line 33
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\web\htdocs\test\home\question.php on line 35

2 个答案:

答案 0 :(得分:0)

$query =  "SELECT s.id, s.lesson_code, l.lesson_name, t.teacher_name 
           FROM student_comment s 
           LEFT JOIN classes l 
           ON s.lesson_code = l.lesson_code 
           LEFT JOIN teacher t 
           ON s.teacher_id = t.id 
           WHERE s.school_id = '" .$_GET['school_id']. "' 
           ORDER BY s.id DESC";

$exe = mysql_query($query) or die(mysql_error());

while($fetch = mysql_fetch_array($exe))
{
    echo '<pre>'; print_r($fetch);
}

答案 1 :(得分:0)

查询将返回false而不是true(布尔值)。

http://in1.php.net/mysqli_query

  

失败时返回FALSE。对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。

在大多数情况下,如果查询格式不正确,您的参数$ _GET ['school_id']可能会出错。

使用mysqli代替mysql,但使用与Parag答案中类似的逻辑。