2012-09-06 23 views
-4

我在PHP中有一個警告如下什麼會導致傳遞給mysql_fetch_object()的資源無效?

警告:mysql_fetch_object():提供的參數不是在電子商務有效的MySQL結果資源:\ Program Files文件\ VertrigoSer \ WWW \ b.php上線16

我的計劃是:

<?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

這是一個非常本地化的問題。但是,您在提供的答案中有足夠的信息來弄清楚。祝你好運! –

回答

1

這裏是h你可以找到:

$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

如果SQL查詢返回沒有結果,它可能會觸發此警告。 執行以下操作前,

$r=mysql_query($query1); 

檢查返回的行數> 0與mysql_num_rows功能。也直接檢查您的查詢,看看它是否有效。

停止使用MySQL擴展,這是不鼓勵。使用PDOMySQLi

+2

因爲'mysql_query()'可以返回混合類型,所以用'==='或'!=='運算符檢查會更好,就像這樣:'if($ r!== false)'。 – martinstoeckli

0

您可以使用類似這樣的東西。

error_reporting(E_ERROR | E_PARSE); 

或者

if (!$result) 
    die("mySQL error: ". mysql_error()); 
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'"; 
相關問題