Php 什么会导致传递给mysql_fetch_object()的资源无效?

Php 什么会导致传递给mysql_fetch_object()的资源无效?,php,warnings,fetch,Php,Warnings,Fetch,我在php中得到了如下警告 警告:mysql\u fetch\u对象:提供的参数不是第16行E:\Program Files\VertrigoSer\www\b.php中的有效mysql结果资源 我的计划是: <?php $connection=mysql_connect("localhost","root","vertrigo"); $db=mysql_select_db("mydb",$connection); $query="INSERT INTO text VALUES(1003

我在php中得到了如下警告

警告:mysql\u fetch\u对象:提供的参数不是第16行E:\Program Files\VertrigoSer\www\b.php中的有效mysql结果资源

我的计划是:

<?php
$connection=mysql_connect("localhost","root","vertrigo");
$db=mysql_select_db("mydb",$connection);

$query="INSERT INTO text VALUES(1003,'PHP','Mcgrowhill','Ivan')";
$r=mysql_query($query);

$query="INSERT INTO book VALUES(201,3,1003)";
$r=mysql_query($query);

$query1="select distinct title from text,book,course where text.isbn=book.isbn and book.cno=course.cno and course.dept='CS'";
$r=mysql_query($query1);

echo"row inserted";

while($row=mysql_fetch_object($r))
{
    echo $row->title;
}

mysql_close($connection);
?>

请给出如何解决此问题的建议

以下是您可以找到的方法:

$query = "INSERT INTO text VALUES(1003,'PHP','Mcgrowhill','Ivan')";
$r = mysql_query($query);
if (!$r) {
    echo mysql_error();
}

$query = "INSERT INTO book VALUES(201,3,1003)";
$r = mysql_query($query);
if (!$r) {
    echo mysql_error();
}

$query1 = "select distinct title from text, book, course where text.isbn = book.isbn and book.cno = course.cno and course.dept = 'CS'";
$r = mysql_query($query1);
if (!$r) {
    echo mysql_error();
} else {
    echo"row inserted";

    while($row = mysql_fetch_object($r)) {
        echo $row->title;
    }
}

mysql_close($connection); ?>

如果SQL查询未返回任何结果,则可能会触发此警告。 在执行以下操作之前

$r=mysql_query($query1);
使用函数检查返回的行数是否大于0。还可以直接检查您的查询,看看它是否有效


停止使用MySQL扩展,这是不鼓励的。使用或

你可以使用这样的东西

error_reporting(E_ERROR | E_PARSE);

文本是mysql的保留字,所以请使用alias并尝试使用它


因为mysql_查询可以返回混合类型,所以最好使用===或!==进行检查运算符,如下所示:if$r!==错。这是一个非常局部的问题。但是,在提供的答案中,您有足够的信息来解决这个问题。祝你好运
if (!$result)
   die("mySQL error: ". mysql_error()); 
$query1="select distinct title from text as t,book as b,course as c where t.isbn=b.isbn and b.cno=c.cno and c.dept='CS'";