Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysqli_fetch_assoc返回重复数据_Php_Mysql_Mysqli_Fetch - Fatal编程技术网

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()
修复了它。谢谢你的帮助。