为啥 mysqli_fetch_array() 返回数组大小的两倍? [关闭]
Posted
技术标签:
【中文标题】为啥 mysqli_fetch_array() 返回数组大小的两倍? [关闭]【英文标题】:Why does mysqli_fetch_array() return array double the size? [closed]为什么 mysqli_fetch_array() 返回数组大小的两倍? [关闭] 【发布时间】:2013-04-06 06:50:23 【问题描述】:我在做一个非常简单的php语句比如
print_r($my_rec);
$row = mysqli_fetch_array($my_rec);
echo "\nP_Id " . $row['P_Id'] . ' Length ' . sizeof($row) . "\n";
$row = mysqli_fetch_array($my_rec);
echo "\nP_Id " . $row['P_Id'] . ' Length ' . sizeof($row) . "\n";
现在当 print_r 打印到屏幕上时,它报告每个数组中只有 16 个字段/列。这是真实的。但是,当我获取一个数组时,它给了我双倍的字段。换句话说,数组在重复自己,这是没有意义的。示例...
我的数据库中有
Col1 Col2
"hi1" "bye1"
当我这样做时
$row = mysqli_fetch_array($my_rec);
foreach($row as $x)
echo $x . "\n";
它会打印出来
hi1
hi1
by2
by2
为什么我会出现这种行为?
【问题讨论】:
RTLM: php.net/mysql_fetch_array,尤其是“返回值”部分。 @MarcB L 是什么意思Linked
,因为这里的某些人认为 F'ing
过于苛刻,无法使用。
同时查看php.net/mysql_fetch_assoc 以避免包含位置索引。
我不明白为什么我被否决了。我阅读了 php 手册,但不明白为什么我得到双数组。然后我去***问一个问题,我因为不理解手册而停了下来。你们这些人毁了***。这不是为知道自己在做什么的人制作的网站。否则为什么会有人在这里提问。我知道很多人会因为喜欢你而避开这类论坛。
【参考方案1】:
因为它还包含一个填充了列位置的数组(即:0、1、2、3 和 id、用户名、密码、电子邮件)。 id
和 0
都持有相同的数据。
如果只想要字符串索引,可以使用mysqli_fetch_assoc
(http://php.net/mysqli_fetch_assoc)
【讨论】:
以上是关于为啥 mysqli_fetch_array() 返回数组大小的两倍? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
为啥 isset($this->var) 在我的 Codeigniter 模型中总是返回 false?
MySQL:mysqli_fetch_array() [重复]
如何修复 mysqli_fetch_array?我使用 php、mysqli 和 html
mysqli_fetch_array() 期望参数 1 为 mysqli_result,布尔值在 [重复]
mysqli_fetch_array():参数 #1 必须是 mysqli_result 类型。如何处理mysqli问题?