可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
我的脚本中有Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\FBlike\like.php on line 104
我不确定这意味着什么以及它为什么会发生..帮助:)?
$like_id=mysql_real_escape_string($_GET['id']);
$sql=mysql_query("select * from likes WHERE id=$like_id DESC LIMIT 1");
while($row=mysql_fetch_array($sql))
{
?>
<!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; charset=utf-8" />
<meta name="description" content="<?php print $row['like']; ?>"/>
<meta name="keywords" content="<?php print $row['like']; ?>" />
<meta property="og:description" content="Click to See More..." />
<meta property="fb:app_id" content="" />
<meta property="og:title" content="<?php print $row['like']; ?>"/>
<meta property="og:type" content="activity"/>
<meta property="og:url" content="http://www.fbquote.me/like.php?id=<?php print $row['id']; ?>" />
<meta property="og:site_name" content="pDank" />
<title><?php print $row['like']; ?></title>
<?php } ?>
答案 0 :(得分:2)
mysql_query()
出错时会返回FALSE
,因此您的查询中有错误。
使用mysql_error()
获取最后一条错误消息。
例如
$result = mysql_query("select * from likes WHERE id=$like_id DESC LIMIT 1");
if (false === $result) {
throw new Exception('MySQL error: ' . mysql_error());
}
答案 1 :(得分:1)
您的SQL查询中有错误。
在mysql_fetch_array()之前添加以下代码:
if (!$sql) {
die(mysql_error());
}
答案 2 :(得分:0)
这意味着您的查询因某种原因失败(语法无效,列未找到...)并返回FALSE。
要捕获它,检查是否$ sql(实际上,你应该命名该变量$ result或类似的,这是更常见的($ sql通常用于查询字符串))是FALSE,如果是这样,打印/记录任何函数mysql_error()返回。