Php 返回双重结果的PDO准备语句fetch()
我有一个输出到CSV文件的脚本。然而,即使数据库中当前有一行,我得到的输出也是将表中每行的每一列回送两次 例如: 1,1,约翰,约翰,史密斯,史密斯,20142014 应该是 约翰·史密斯,2014年 在我使用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
// 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也显示了您发布的内容!