我在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);
?>
请提出如何解决此问题的建议
答案 0 :(得分:2)
如果SQL查询未返回任何结果,则可能会触发此警告。 在执行以下操作之前,
$r=mysql_query($query1);
检查返回的行数是否为&gt; 0具有mysql_num_rows功能。还要直接检查您的查询,看它是否有效。
答案 1 :(得分: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); ?>
答案 2 :(得分: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'";
答案 3 :(得分:0)
你可以使用这样的东西。
error_reporting(E_ERROR | E_PARSE);
或
if (!$result)
die("mySQL error: ". mysql_error());