【问题标题】:Need help with mysql_fetch_array() error?需要有关 mysql_fetch_array() 错误的帮助?
【发布时间】:2023-03-08 05:04:02
【问题描述】:

当我尝试运行这段代码时,我得到了错误:

“警告:mysql_fetch_array() 期望参数 1 是资源,给定字符串”

我一直在尝试调试它,但我似乎无法。

它连接到一个有 6 个字段的表:

id (int) |名称 (varchar) |图像 (BLOB) |说明(文字)|网址(文本)|关键词(文字)

谁能尝试解决这个问题?!?!?!

函数写在下面....

function get_images()
{
    $limit = 5;
    $count = 0;

    $row = mysql_fetch_array("SELECT * FROM images");
    echo "<table border='1'>";
    while($row)
    {
    $img = $row['name'];
    if ($count < $limit)
        {
            if($count == 0)
                {
                echo "<tr>";
                }
            echo "<td>$img</td>";
        }
    else
        {
        $count = 0;
        echo "</tr><tr><td>$img</td>";
        }
    $count++;
    }
    echo "</td></table>";
}

【问题讨论】:

  • 看来您是 PHP 新手。请consider learning the modern PDO database functions 而不是旧的和破坏的“mysql”功能。
  • 有人向mysql函数寻求帮助,你感到惊讶吗?!你在打广告?!我不明白标题。我可以推荐你到这个网站:english.stackexchange.com 吗?
  • @Alin Purcaru 您清楚地了解问题所在,您清楚地了解 Rahulpwns 的该功能存在问题,我认为这里不适合指出这一点,而是使用您的声誉进行编辑标题。

标签: php mysql arrays fetch


【解决方案1】:

mysql_fetch_array 期望参数 1 是一个有效的 mysql 查询对象。

所以,先调用 mysql_query。

$query = mysql_query("SELECT * FROM images");
$row = mysql_fetch_array($query);

【讨论】:

    【解决方案2】:
    $query = mysql_query("SELECT * FROM images");
    while ($row = mysql_fetch_array($query)){
     do_something();
    }
    

    【讨论】:

      【解决方案3】:

      你用错了:

      $result = mysql_query("SELECT * from images");
      $row = mysql_fetch_array($result);
      

      然后做你需要的......

      【讨论】:

        【解决方案4】:

        你向 mysql_fetch_array() 传递了错误的参数

        function get_images()
        {
            $limit = 5;
            $count = 0;
            $resource = mysql_query("SELECT * FROM images"$res);
            $row = mysql_fetch_array($resource );
            echo "<table border='1'>";
            while($row)
            {
        
                $img = $row['name'];
                if ($count < $limit)
                    {
                        if($count == 0)
                            {
                            echo "<tr>";
                            }
                        echo "<td>$img</td>";
                    }
                else
                    {
                    $count = 0;
                    echo "</tr><tr><td>$img</td>";
                    }
                $count++;
                }
                echo "</td></table>";
            }
        

        【讨论】:

          【解决方案5】:

          你的错误在这里:

          $row = mysql_fetch_array("SELECT * FROM images");
          

          你需要这样做:

          $sql = "SELECT * FROM images"; 
          $res = mysql_query ($sql); 
          $row = mysql_fetch_array($res);
          

          问题是您尝试以不正确的方式发送查询,首先您需要使用返回“资源”的 mysql_query 执行查询,然后使用该资源并使用 mysql_fetch_array 提取信息。

          希望这会有所帮助:)

          【讨论】:

            【解决方案6】:

            DB的连接在哪里?你应该这样使用;

            $result = msql_query('SELECT id, name FROM people', $con);
                if (!$result) {
            die('Query execution problem: ' . msql_error());
            }
            
            while ($row = msql_fetch_array($result, MSQL_ASSOC)) {
                echo $row['id'] . ': ' . $row['name'] . "\n";
            }
            

            【讨论】:

              猜你喜欢
              • 2012-07-04
              • 2010-09-23
              • 1970-01-01
              • 2011-02-22
              • 1970-01-01
              • 2011-09-02
              • 1970-01-01
              • 1970-01-01
              • 2021-07-15
              相关资源
              最近更新 更多