Php mysqli_fetch_assoc返回重复数据
这里有很多东西,但经过大量的搜索和尝试,我仍然被卡住了 使用Php mysqli_fetch_assoc返回重复数据,php,mysql,mysqli,fetch,Php,Mysql,Mysqli,Fetch,这里有很多东西,但经过大量的搜索和尝试,我仍然被卡住了 使用mysqli\u fetch\u assoc()填充数组时,每行添加两次 $query = "SELECT column FROM table WHERE year = 2012"; if ($result = mysqli_query($connect, $query)) { while ($row = mysqli_fetch_assoc($result)) { $data[] = $row["column"]; }
mysqli\u fetch\u assoc()
填充数组时,每行添加两次
$query = "SELECT column FROM table WHERE year = 2012";
if ($result = mysqli_query($connect, $query)) {
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row["column"];
}
echo implode(',', $data);
mysqli_free_result($result);
}
这将返回以下内容:
1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10
我期待1,2,3,4,5,6,7,8,9,10
我添加了一些额外的行来进行调试
打印($data)
产量
Array (
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
[10] => 1
[11] => 2
[12] => 3
[13] => 4
[14] => 5
[15] => 6
[16] => 7
[17] => 8
[18] => 9
[19] => 10 )
mysqli_result Object
(
[current_field] => 0
[field_count] => 1
[lengths] =>
[num_rows] => 10
[type] => 0
)
print\r($result)代码>收益率
Array (
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
[10] => 1
[11] => 2
[12] => 3
[13] => 4
[14] => 5
[15] => 6
[16] => 7
[17] => 8
[18] => 9
[19] => 10 )
mysqli_result Object
(
[current_field] => 0
[field_count] => 1
[lengths] =>
[num_rows] => 10
[type] => 0
)
如果[num\u rows]=>10
,而我使用的是mysqli\u fetch\u assoc()
,而不是mysqli\u fetch\u array()
,为什么要向数组添加两次值?可能您已经为$data
数组分配了一些数据。尝试在之前清空它,而说明:
$query = "SELECT column FROM table WHERE year = 2012";
if ($result = mysqli_query($connect, $query)) {
$data = array();
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row["column"];
}
echo implode(',', $data);
mysqli_free_result($result);
}
看看它输出了什么
我相信column
不是一个真正的列名,否则你会得到一个错误。我不是一个经验丰富的PHP开发人员-但你现在不应该使用PDO吗?@JonClements更新了标题。他使用的是mysqli,而不是mysql。mysqli是PDO的合适替代品。您确定没有重用先前调用的变量$data
,或者调用了两次吗?您没有在这里预先初始化$data=array()
。@MichaelBerkowski您说得对;谢谢一位明尼阿波利斯人打招呼,你说得对;添加$data=array()
修复了它。谢谢你的帮助。