mysql获取数组错误?

时间:2011-05-08 23:28:25

标签: php mysql arrays

  

可能重复:
  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 } ?>

3 个答案:

答案 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()返回。