2015-10-17 122 views
0

我今天在阅读this documentation,看到输出时感到困惑。了解PHP文档代码

的代码行:

/* numeric array */ 
$row = $result->fetch_array(MYSQLI_NUM); 
printf ("%s (%s)\n", $row[0], $row[1]); 

/* associative array */ 
$row = $result->fetch_array(MYSQLI_ASSOC); 
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]); 

/* associative and numeric array */ 
$row = $result->fetch_array(MYSQLI_BOTH); 
printf ("%s (%s)\n", $row[0], $row["CountryCode"]); 

产生的结果为:

Kabul (AFG) 
Qandahar (AFG) 
Herat (AFG) 

如果有环和data_seek()的组合,那么我可以理解为什么输出是每次都不同。上面的代码的输出不应该如此吗?

Kabul (AFG) 
Kabul (AFG) 
Kabul (AFG) 

我错过了什么吗?

+1

I认为,每次获取相同的结果集时,数组光标都会向前移动。循环获取结果集中所有行的原因。除非你为PDO使用'fetchAll'之类的东西,不知道mysqli。 – frz3993

+0

记录集游标正在进行与每个调用'fetch_array'与各种参数,所以这是它应该如何 – RamRaider

回答

0

你只需进一步调查一下。该页面说这个函数“是mysqli_fetch_row()的扩展版本”,而通过下面的链接,你会发现“每次后续调用该函数都会返回结果集中的下一行”