我得到了这个:
Array
(
[0] => 1
[id] => 1
[1] => 778613c4344dbc9565c359c1154c6a18
[session] => 778613c4344dbc9565c359c1154c6a18
[2] => fn
[first_name] => fn
[3] => ln
[last_name] => ln
[4] => un
[username] => un
[5] => 016e6128e8ca9dda1b310c364d9b622c
[password] => 016e6128e8ca9dda1b310c364d9b622c
[6] => address
[email] => address
[7] => 100
[permission] => 100
[8] => 10
[year_level] => 10
[9] =>
[department] =>
[10] => Sample
[campus] => Sample
[11] => 0
[logo_url] => 0
)
运行此
后$user = mysql_fetch_array(mysql_query("SELECT session FROM users WHERE username='$cookie[username]' AND first_name='$cookie[first_name]' AND last_name='$cookie[last_name]' AND campus='$cookie[campus]' AND id='$cookie[id]'"))
为什么它会像这样重复?感谢
编辑:我认为主键是这样做的。关于如何阻止它的任何想法?答案 0 :(得分:13)
如果您未将结果类型指定为第二个参数,则mysql_fetch_array()
将默认为MYSQL_BOTH
(引用):
使用
MYSQL_BOTH
(默认值),您将获得两个数组 关联和数字索引。
如果这不是您想要的,您必须将第二个参数传递给该函数,以指示您想要的结果类型。
例如,要仅获取具有列名作为键的关联数组:
$result = mysql_query("SELECT session FROM users WHERE username='$cookie[username]' AND first_name='$cookie[first_name]' AND last_name='$cookie[last_name]' AND campus='$cookie[campus]' AND id='$cookie[id]'");
$user = mysql_fetch_array($result, MYSQL_ASSOC);
作为旁注:
mysql_real_escape_string()
mysql_fetch_array()
之前,您应该测试mysql_query()
是否成功,mysql_*
函数 - 请参阅Choosing an API。答案 1 :(得分:1)
尝试第二个参数MYSQL_ASSOC或MYSQL_NUM。默认使用MYSQL_BOTH,返回数字和字段键。
答案 2 :(得分:1)
我会告诉你使用mysql_fetch_assoc
它只会给你关联的数组。数字部分将不存在。