$query = "SELECT * FROM table";
$result = mysql_query($query, $db);
$all = mysql_fetch_assoc($result);
echo mysql_num_rows($result) . ":" . count($all);
Run Code Online (Sandbox Code Playgroud)
这回来了
2063:7
Run Code Online (Sandbox Code Playgroud)
我之前没有使用过计数,所以我不是100%肯定它不计算表格列.现在已经很晚了,我可能会疯了.
这是发生了什么的另一个例子:
$result = mysql_query($query, $db);
echo "Rows: " . mysql_num_rows($result) . " <BR />";
$player_array = mysql_fetch_assoc($result);
echo "<pre>";
print_r($player_array);
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)
哪个输出:
Rows: 9
Array
(
[playerID] => 10000030
)
Run Code Online (Sandbox Code Playgroud)
TL; DR:我提交的返回多行的查询,但fetch_array只给出了结果数组中这些行的一小部分.
mysql_fetch_assoc 只需返回一行,您必须使用循环来检索所有行
while($row = mysql_fetch_assoc($result))
{
print_r($row);
}
Run Code Online (Sandbox Code Playgroud)
每次调用mysql_fetch_assoc($result);都会给你一行结果集:
(来自文档)
mysql_fetch_assoc - 将结果行作为关联数组获取
返回与获取的行对应的关联数组,并将内部数据指针向前移动.
mysql_fetch_assoc()等效于为可选的第二个参数调用mysql_fetch_array()MYSQL_ASSOC.它只返回一个关联数组.
你必须在循环中使用该函数:
$all = array();
while(($row = mysql_fetch_assoc($result))) {
$all[] = $row;
}
Run Code Online (Sandbox Code Playgroud)