如果你确定你的返回指只有一行,或者你只需要第一行,你完全可以不用 while 。
直接 $row = mysql_fetch_array($result)
后面就可以直接使用这个变量了。$resule 只是一个结果的指针,完全可以用一半的结果。
while 的作用是取出所有的结果并且进行处理,while 的 {} 里的代码就是对结果进行运算的代码。
这是因为 mysql 查询的结果一次只能 fetch 一行。如果你要多行,就需要多次进行 fetch。如果你需要同时处理很多行结果:
[code:1]
$i=1; // 我喜欢从1开始
while($row = mysql_fetch_array($result))
{
$bbb[$i]= $row["class"];
$i++;
}
[/code:1]
这样 $bbb[] 这个数组就是所有返回的结果,$i 对应于第几个(行)。
你的代码完全可以不用 while 。
像你这种代码应该不使用 while 进行多次获取,用来防止数据末尾被人恶意添加一个同样的 username 。
仅仅获取第一行结果就行了。
还有一点,SQL 里 WHERE 的 " = " 似乎并不是完全等于,而是包含的意思?
不知道 php 支不支持这样使用:
[code:1]
$result = mysql_db_query(mdb2,"SELECT * FROM sp_user WHERE username=$loginUsername");
$bbb = mysql_fetch_array($result)["class"];
mysql_free_result($result); //其实没有必要立即 free 掉,你后面的内存使用不大的话,php 代码运行结束会自动处理掉。[/code:1]