-5

我在php中收到如下警告

警告:mysql_fetch_object():提供的参数不是第 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);
?>

请提出如何解决这个问题的建议

4

4 回答 4

2

如果 SQL 查询没有返回结果,它可能会触发此警告。在执行以下操作之前,

$r=mysql_query($query1);

使用mysql_num_rows函数检查返回的行数是否 > 0 。还要直接检查您的查询,看看它是否有效。

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

于 2012-09-06T06:37:28.527 回答
1

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

$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); ?>
于 2012-09-06T06:35:53.687 回答
1

text是mysql的保留字所以用alias试试

喜欢

$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'";
于 2012-09-06T06:39:38.837 回答
0

你可以使用这样的东西。

error_reporting(E_ERROR | E_PARSE);

或者

if (!$result)
   die("mySQL error: ". mysql_error()); 
于 2012-09-06T06:38:25.107 回答