-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 拡張機能の使用を中止してください。推奨されません。PDOまたはMySQLiを使用する

于 2012-09-06T06:37:28.527 に答える
1

テキストはmysqlの予約語なので、エイリアスを使用して試してください

好き

$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 に答える
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 に答える
0

このようなものを使用できます。

error_reporting(E_ERROR | E_PARSE);

または

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