【发布时间】:2016-08-27 10:40:31
【问题描述】:
我是一个新的、缺乏经验的 Laravel 开发人员,我对得到的查询结果感到困惑。我正在尝试将查询结果写入 CSV 文件。我的代码:
$connection = fopen('/BSTablespace/someFile.txt', 'w');
$users = DB::table('users')->select('first_name', 'agent_id_from_website', 'sales_manager_id', 'last_name')->toSql();
$generator = function () use ($users){
$db = DB::connection()->getPdo();
$query = $db->prepare($users);
$query->execute();
while($user = $query->fetch()){
yield($user);
}
};
foreach ($generator() as $g){
fputcsv($connection, array_values($g));
}
fclose($connection);
我不是每列得到一个结果,而是得到 2 个。一个用列名键控,一个用数字索引键控,如下所示:
'first_name' => 'Jane', 0 => 'Jane', 'agent_id_from_website' => '450', 1 => '450', 'sales_manager_id' => 317, 2 => 317, 'last_name' => 'Doe', 3 => 'Doe'
为什么我会得到重复的结果?显然我可以忽略重复项,但我很好奇为什么 PHP、Laravel 或 Postgres 会以这种方式处理它。
【问题讨论】:
标签: php postgresql laravel eloquent