我已经编写了下面的代码,它应该根据数据库检查会话变量,并给我一个用户名=会话中的用户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;
?>
答案 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函数。