我目前正在学习php/mysql,我对此感到困惑。
经过一些绞尽脑汁之后,我发现mysql_fetch_array记住了它最后访问的行,并访问了下一行。(我最初是想弄清楚代码是如何在示例代码中与它通信的)
因此,对于数据库:
parent | job
-------+-------------
mom | receptionist
-------+-------------
dad | taxi driver代码
mysql_fetch_array($result)[job] 第一次返回“接待员”,第二次返回“出租车司机”。
谢谢
发布于 2010-12-15 11:56:52
发布于 2010-12-15 11:57:24
在哪里/如何跟踪这件事?
mySQL服务器有一个内部结果指针。在某些数据库/包装器/库中,可以倒带指针,但据我所知,这在函数的mysql_*库中是不可能的。
,如果我不想按顺序访问它们,会发生什么?
你必须按顺序进入他们。唯一的替代方法是将所有行提取到一个数组中:然后可以随机访问每一行。
如果要更改记录的顺序,请使用ORDER子句在查询中这样做。
一些数据库包装器(如PDO )有一个fetchAll()方法,它正是这样做的。对于大型结果集,这可能是内存密集型的,并且打破了脚本的内存限制,这就是为什么通常不会这样做的原因。
发布于 2010-12-15 12:09:12
还有另一种方法来解决这个问题。
如果你想知道你也能做些什么来完成这个功能的话。以下是如何:
<?php
function count_off()
{
static $count = 1;
echo $count++;
}
count_off();
count_off();
count_off();
count_off();
count_off();
?>以上将输出12345
我应该提一提。你不应该在没有充分理由的情况下这么做。调试时很难跟踪。
https://stackoverflow.com/questions/4449595
复制相似问题