为什么这个简单的mysql_query / SELECT / echo得到“Array”作为输出?

时间:2011-09-09 21:48:04

标签: php mysql

我已经编写了下面的代码,它应该根据数据库检查会话变量,并给我一个用户名=会话中的用户ID。

如果我echo $session_name;我收到了用户ID,例如三十 如果我echo $row2;我得到数组

我做错了什么?

<?php
        connect();
        $session_name = $_SESSION[id];
        $sql2 = "SELECT username FROM members WHERE member_id = '$session_name'";
            $result2=mysql_query($sql2);
            $row2 = mysql_fetch_array($result2);
        echo $row2;
        ?>

6 个答案:

答案 0 :(得分:2)

echo $row2[0];

甚至

print_r($row2); 

看看你从db获得了什么。

答案 1 :(得分:1)

尝试回显$row2[0]mysql_fetch_array返回一个结果行作为索引数组,在这种情况下只有一个元素/列。另外,请不要忘记测试$row2 === FALSE,这表示查询没有结果。

答案 2 :(得分:0)

<?php
        connect();
        $session_name = $_SESSION[id];
        $sql2 = "SELECT username FROM members WHERE member_id = '$session_name' LIMIT 1";
            $result2=mysql_query($sql2);
            while($row2 = mysql_fetch_assoc($result2))
               echo $row2['username'];
?>

答案 3 :(得分:0)

获取的结果始终是一个数组。在这种情况下,它是一维数组。使用$row2[0](假设你的fetchmode是一个数组)。

如果你的fetchmode是关联的或对象的,那就是$row2['username']

点击此处查看更多有关信息:http://php.net/manual/en/function.mysql-fetch-array.php

答案 4 :(得分:0)

$ row2实际上是一个表示返回的整行的数组。试试$ row2 [0],我认为这会给你你所期望的(返回行中的单个字段)。

答案 5 :(得分:0)

那是因为$row2 一个数组。您使用mysql_fetch_array来获取它,并返回一个数组,正如函数的名称所暗示的那样。

mysql_fetch_array返回的数组使用SQL查询中的列名作为键。因此

echo $row2['username'];

将返回您期望的数据。

作为旁注:SELECT在技术上是SQL 子句,而不是PHP函数。