今天碰到arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in,下面我們來看看解決辦法吧。
今天學習php的時候遇到了這個錯誤:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:xampphtdocsmyblogindex.php on line 15
源代碼是:
代碼如下 復制代碼<?php
$sql="select entries.*,categories.cat from entries,categorie where entries.cat_id=categories.id order by dateposted desc limit 1;";
$result=mysql_query($sql);
$row=mysql_fetch_assoc($result);
echo "<h2><a href='viewentry.php?id=" . $row['id'] . "'>" . $row['subject'] . "</a></h2><br/>";
echo "<i> in <a href='viewcat.php?id=" . $row['cat_id'] . "'>" . $row['cat'] . "</a> - Posted on " . date("D js F Y g.iA",strtotime($row['dateposted'])) . "</i>";
echo "<p>";
echo nl2br($row['body']);
echo "</p>";
百度了一下,找到了解決辦法!他出錯的原因是因為數據庫中沒有數據導致musql_fetch_assoc()函數返回值為false,所以下面的$row['']使用就出錯了!
所以在使用mysql_fetch_assoc() 函數的時候先對$result做判斷!
代碼如下:
代碼如下 復制代碼<?php
$sql="select entries.*,categories.cat from entries,categorie where entries.cat_id=categories.id order by dateposted desc limit 1;";
$result=mysql_query($sql);
if($result){
$row=mysql_fetch_assoc($result);
echo "<h2><a href='viewentry.php?id=" . $row['id'] . "'>" . $row['subject'] . "</a></h2><br/>";
echo "<i> in <a href='viewcat.php?id=" . $row['cat_id'] . "'>" . $row['cat'] . "</a> - Posted on " . date("D js F Y g.iA",strtotime($row['dateposted'])) . "</i>";
echo "<p>";
echo nl2br($row['body']);
echo "</p>";
}
else{
echo "沒有文章";
}
?>
這樣就不會報錯了!
----------------------------------------------------------------------------------------------------------------------------------
注釋:mysql_fetch_assoc() 函數
定義和用法
mysql_fetch_assoc() 函數從結果集中取得一行作為關聯數組。
返回根據從結果集取得的行生成的關聯數組,如果沒有更多行,則返回 false。
語法
mysql_fetch_assoc(data)參數 描述
data 必需。要使用的數據指針。該數據指針是從 mysql_query() 返回的結果。
提示和注釋
注釋:mysql_fetch_assoc() 和用 mysql_fetch_array() 加上第二個可選參數 MYSQL_ASSOC 完全相同。它僅僅返回關聯數組。這也是 mysql_fetch_array() 初始的工作方式。
提示:如果在關聯索引之外還需要數字索引,用 mysql_fetch_array()。
注釋:本函數返回的字段名是區分大小寫的。