【问题标题】:mysql_fetch_array only returns first columnmysql_fetch_array 只返回第一列
【发布时间】:2012-08-27 19:58:42
【问题描述】:

我真的非常需要以下代码的帮助。我只是不知道为什么它不起作用。

我需要查询一个 MySQL 表,我只需要为特定 ID 返回一行。然而 mysql_fetch_array 只返回该表中的第一列 - 我因沮丧而死去......

$sqlCommand = "SELECT * FROM sqlInformationen WHERE ID = 2"; 

$sqlConn = mysql_connect($config['mysql_host'],$config['mysql_user'],$config['mysql_pass']);
mysql_select_db($config['db_name']) or die ("Fehler bei der Verbindungsaufnahme."); 

$result = mysql_query($sqlCommand); 
$row = mysql_fetch_array($result);  

echo $row['infTitel'];

数据库包含“ID”、“infTitel”、“infZusammenfassung”等字段。但是只有 echo $row['ID'] 返回一个值。

非常感谢帮助。

谢谢。

【问题讨论】:

  • print_r($row); 时会发生什么?
  • 请不要将mysql_* 函数用于新代码。它们不再维护,社区已经开始deprecation process。看到red box?相反,您应该了解prepared statements 并使用PDOMySQLi。如果您无法决定,请尝试this article。如果你想学习,here is good PDO tutorial.
  • @raina77ow print_r($row) 不返回任何内容,echo $row 只返回 "Array"
  • @Matthias Weird。好的,让我们改用var_dump($row)(就在echo $row['infTitel'] 行之前)。
  • @raina77ow 与 print_r 相同 - 不返回任何内容。但是,当我查询另一个表时,我会得到数组中的结果。

标签: php mysql


【解决方案1】:

你需要使用:

$row = mysql_fetch_assoc($result); 

获取关联数组作为结果。

mysql_fetch_array($result) 也返回数字索引和关联索引,但我不确定是从哪个版本开始的。

【讨论】:

    【解决方案2】:

    $result = mysql_query($sqlCommand);之后

    $data = array();
    while ($row = mysql_fetch_array($result)) {
        $data[] = $row;
    }
    print_r($data);
    

    【讨论】:

    • 这段代码有点奇怪。您只会打印查询的最后一个结果。
    • 哦,对不起,忘记添加 [] 以将 $row 存储在数组中。谢谢。
    【解决方案3】:

    Fetch Row 一次获取一行,你应该像这样将它弹出到一个 while 循环中:

    while($row = mysql_fetch_array($result))
    {
        echo $row['infTitel'];
        echo $row['col2'];
        echo $row['col3'];
    }
    

    如果您使用 select * 回显您选择的行的内容并且没有获得任何值,则可能意味着该行的列是空的。

    如果您使用的是 fetch_array,它应该返回列名和索引。试试这个看看你是否得到你的数据:

    while($row = mysql_fetch_array($result))
    {
        for($i=0; $i<count($row);, $i++)
        {
            echo $row[$i]."<br>";
        }
    }
    

    如果这向您显示了您期望的数据(空行或空行应该从内存中返回空行),那么您的 $row['Colname'] 语法可能存在区分大小写的问题?

    【讨论】:

    • 我只需要为特定 ID 返回一行
    • 使用 mysql_fetch_assoc() 会更好,考虑到 OP 正在寻找使用 assoc 数组。 mysql_fetch_array 返回行和关联。
    • 非常感谢您的快速回复!这适用于返回 $row['ID'] - 但是我没有得到 $row['infTitel'] 的任何值
    • @Matthias 你确定你的代码$row['columnName'] 部分的列名是正确的吗?
    • @Fluffeh - 是的,我已经使用终端仔细检查了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 2020-03-24
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多