Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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 返回双重结果的PDO准备语句fetch()_Php_Mysql_Pdo_Fetch - Fatal编程技术网

Php 返回双重结果的PDO准备语句fetch()

Php 返回双重结果的PDO准备语句fetch(),php,mysql,pdo,fetch,Php,Mysql,Pdo,Fetch,我有一个输出到CSV文件的脚本。然而,即使数据库中当前有一行,我得到的输出也是将表中每行的每一列回送两次 例如: 1,1,约翰,约翰,史密斯,史密斯,20142014 应该是 约翰·史密斯,2014年 在我使用PDO和准备语句之前,它工作得很好,所以我想可能我不理解fetch()如何正确工作。 下面是我的代码。知道我做错了什么吗 // get rows $query_get_rows = "SELECT * FROM Contacts ORDER BY date_added DESC"; $re

我有一个输出到CSV文件的脚本。然而,即使数据库中当前有一行,我得到的输出也是将表中每行的每一列回送两次

例如: 1,1,约翰,约翰,史密斯,史密斯,20142014 应该是 约翰·史密斯,2014年

在我使用PDO和准备语句之前,它工作得很好,所以我想可能我不理解fetch()如何正确工作。 下面是我的代码。知道我做错了什么吗

// get rows
$query_get_rows = "SELECT * FROM Contacts ORDER BY date_added DESC";
$result_get_rows = $conn->prepare($query_get_rows);
$result_get_rows->execute();         
$num_get_rows = $result_get_rows->rowCount();

while ($rows_get_rows = $result_get_rows->fetch()) 
{
  $csv .= '"'.join('","', str_replace('"', '""', $rows_get_rows))."\"\n";
}
echo $csv;
exit;

您应该对PDO说,您只需要关联数组或编号数组:

while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_ASSOC)) 
获取关联数组或

while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_NUM)) 
获取按列编号索引的数组的步骤

取景风格

控制如何将下一行返回给调用方。 此值必须是PDO::FETCH_*常量之一,默认为 PDO::ATTR_DEFAULT_FETCH_MODE的值(默认为 PDO::FETCH_两者)

FETCH_ASSOC:返回按列名索引的数组 在你的结果集中

PDO::FETCH_eath(默认值):返回由两列索引的数组 结果集中返回的名称和0索引列编号


谢谢你的解释。我一直以为只有fetch_assoc才起作用。var_dump也显示了您发布的内容!