可能重复:
PHP Error: mysql_fetch_array() expects parameter 1 to be resource, boolean given
当我运行我的脚本时,我继续得到这些错误,我无法弄清楚我需要修复什么,因为现在它不会显示任何像我需要它的PHP。
这是我收到的错误。
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/WordOfMouth/root/pages/profile_page/profile_page.php on line 38
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/WordOfMouth/root/pages/profile_page/profile_page.php on line 44
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/WordOfMouth/root/pages/profile_page/profile_page.php on line 136
任何帮助都会令人难以置信。
<?php
include_once("../../mysql_server/checkuserlog.php");
?>
<?php
// Now let's initialize vars to be printed to page in the HTML section so our script does not return errors
// they must be initialized in some server environments
$id = "";
$firstname = "";
$middlename = "";
$lastname = "";
$country = "";
$state = "";
$city = "";
$zip = "";
$bio_body = "";
$bio_body = "";
$user_pic = "";
$blabberDisplayList = "";
// If coming from category page
if ($_GET['id']) {
$id = $_GET['id'];
} else if (isset($_SESSION['id'])) {
$id = $_SESSION['id'];
} else {
include_once "../home_page/home_page.php";
exit();
}
$id = mysql_real_escape_string($id);
$sql = mysql_query("SELECT * FROM myMembers WHERE id='$id' LIMIT 1");
if (mysql_num_rows($sql) === 0) { // evaluate the count
echo("ERROR");
exit();
}
// ------- END MAKE SURE PERSON EXISTS IN DATABASE ---------
// Make sure this person a visitor is trying to view actually exists
while($row = mysql_fetch_array($sql)){
$firstname = $row["firstname"];
$lastname = $row["lastname"];
$country = $row["country"];
$state = $row["state"];
$city = $row["city"];
$sign_up_date = $row["sign_up_date"];
$sign_up_date = strftime("%b %d, %Y", strtotime($sign_up_date));
$last_log_date = $row["last_log_date"];
$last_log_date = strftime("%b %d, %Y", strtotime($last_log_date));
$bio_body = $row["bio_body"];
$bio_body = str_replace("&#39;", "'", $bio_body);
$bio_body = stripslashes($bio_body);
$website = $row["website"];
$youtube = $row["youtube"];
$facebook = $row["facebook"];
$twitter = $row["twitter"];
$friend_array = $row["friend_array"];
/////// Mechanism to Display Pic. See if they have uploaded a pic or not //////////////////////////
$check_pic = "../../members/$id/image01.jpg";
$default_pic = "../../members/0/image01.jpg";
if (file_exists($check_pic)) {
$user_pic = "<img src=\"$check_pic?$cacheBuster\" width=\"218px\" />";
} else {
$user_pic = "<img src=\"$default_pic\" width=\"218px\" />";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html" />
<meta name="Description" content="Profile for <?php echo "$username"; ?>" />
<meta name="Keywords" content="<?php echo "$username, $city, $state, $country"; ?>" />
<meta name="rating" content="General" />
<meta name="ROBOTS" content="All" />
<title>Profile Page</title>
<link href="../../style.css" rel="stylesheet" type="text/css" />
<link rel="icon" href="#" type="image/x-icon" /> <!-- INSERT ICON -->
<link rel="shortcut icon" href="#" type="image/x-icon" /> <!-- AND HERE -->
<script src="../../jquery-1.4.2.js" type="text/javascript"></script>
</head>
<body>
<div class="wrapOverall">
<?php include_once '../../templates/decide_header.php'; ?>
<table width="900" border="0" style="background-color:#F2F2F2; border:#999 1px solid;" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="738"><br />
<table width="90%" border="0" align="center" cellpadding="6">
<tr>
<td width="48%" valign="top">
<?php print "$firstname $lastname"; ?>
<br />
<?php print "$user_pic"; ?>
<br />
Member Since: <?php print "$sign_up_date"; ?>
<br />
<?php print "$youtubeChannel"; ?>
</td>
<td width="52%" valign="top">
<br />
<strong><u><?php print "$firstname $lastname"; ?>'s Blabs:</u></strong>
<br />
<?php print "$the_blab_form"; ?>
<div style="width:100%; height:180px; overflow:auto; overflow-x:hidden;">
<?php print "$blabberDisplayList"; ?>
</div>
<br />
<br />
<strong><u><?php print "$firstname $lastname"; ?>'s Location Details:</u></strong>
<br />
<?php print "$city"; ?> • <?php print "$state"; ?> • <?php print "$country"; ?>
<br />
<br />
<strong><u>About <?php print "$firstname $lastname"; ?></u></strong>
<br />
<?php print "$bio_body"; ?>
<br />
</td>
</tr>
<tr>
<td colspan="2" valign="top"> </td>
</tr>
</table>
<p><br />
<br />
</p></td>
<td width="160" valign="top"><?php include_once "../../templates/right_AD_template.php"; ? ></td>
</tr>
</table>
<?php include_once '../../templates/footer_template.php'; ?>
</div> <!-- END wrapOverall -->
</body>
</html>
答案 0 :(得分:1)
在以下两行代码中:
$sql = mysql_query("SELECT * FROM myMembers WHERE id='$id' LIMIT 1");
if (mysql_num_rows($sql) === 0) { // evaluate the count
如果mysql_query
失败,则您没有可以传递给mysql_num_rows()
的可行resource。
您应首先检查以确保查询实际运行:
$sql = mysql_query("SELECT * FROM myMembers WHERE id='$id' LIMIT 1");
if (!$sql) {
// query failed
echo "Query failed: " . mysql_error();
} else {
$num_rows = mysql_num_rows($sql);
// rest of your code
}
因为你有===
,所以表达式mysql_num_rows($sql) === 0
的计算结果为true,因为函数返回了null,因为它被调用了一个错误的值。因此,您遇到的问题是使用无效资源调用mysql_fetch_array
。
主要线索是:mysql_num_rows() expects parameter 1 to be resource, boolean given
。
它需要一个资源,但它被赋予一个布尔值,它无法使用。因此,您可以调查传递给它的变量的值以及为什么它是bool而不是资源(在这种情况下,因为查询失败)。