【问题标题】:mysql_fetch_array() expects parameter 1 to be resource (I know, duplicate, but none of the others match what I need) [duplicate]mysql_fetch_array() 期望参数 1 是资源(我知道,重复,但其他都不符合我的需要)[重复]
【发布时间】:2013-04-06 06:20:33
【问题描述】:

我知道,还有很多其他主题与此相关,但没有一个与我需要帮助的主题相匹配。我正在尝试创建一个用户配置文件系统,它给了我标题中的错误。这是我的鳕鱼:

<?php
$dbname="users";
$host="localhost";
$user="root";
$pass="";

$link = mysql_connect($host, $user, $pass);
mysql_select_db($dbname, $link);



$sql_statement = 'SELECT username, name, aboutme, website FROM userprofile';
$result = mysql_query($sql_statement, $link);

while($row = mysql_fetch_array($result))
  {
  echo "<b>User:</b> ".$row['username'].'<br>';
  }
?>

【问题讨论】:

  • 没有其他重复项建议使用mysql_error() 来实际找出问题所在吗?
  • mysql_ 函数已弃用。请不要在新代码中使用它们。
  • 将第 13 行更改为以下内容,然后发布结果:$result = mysql_query($sql_statement, $link) or die(mysql_error());
  • 仅仅因为其他受骗者使用不同的查询并不意味着它们不适用于您的问题:您的一个数据库操作失败了,您的代码盲目地(并且愚蠢地)假设没有任何可能曾经出错,现在你要付出代价。 总是在处理外部资源时检查成功/失败。这在调试/开发时也更适用。

标签: php login system


【解决方案1】:

通常当发生这种情况并且传递的变量显然是结果资源时,如此处所示,您有一个 MySQL 语法问题。

尝试从 MySQL 命令行执行该查询。它可能会抱怨语法或未知的列或表。非常,非常仔细查看查询中的列名,并检查它们完全与数据库中的内容匹配。

或者,根据您的错误级别,您甚至可能没有连接到数据库。你的代码没问题,SQL和PHP之间的事务存在问题。

【讨论】:

    猜你喜欢
    • 2011-02-11
    • 2011-08-28
    • 1970-01-01
    • 2012-07-31
    • 2011-06-21
    • 2011-09-23
    • 1970-01-01
    相关资源
    最近更新 更多