opencsv — создание нескольких CSV-файлов в стеке переполнения

У меня есть код ниже

<?php
/* Error display */
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('memory_limit', '512M');

/* Requires */
require 'conn.php';

/* Parameters (DIM) */
$param_customer                = $_POST['param_customer'];
$param_user                    = $_POST['param_user'];

/* Others */
$param_email    = $_POST['email'];
$file_dump_area = "../general_sync/";

/* Array */
$jsonData     = array();
$arr_result   = array();

/******************************** Download customer      *********************************/
$cur_filename = $file_dump_area . removeCharEmail($param_email)  . "_" . $param_customer . ".csv";
$cur_file     = fopen($cur_filename, "w");
$cur_sql      = "CALL android_getCustomer('" .$param_email. "')";
$cur_result   = mysqli_query($con,$cur_sql);

if ($cur_file && $cur_result) {
while ($row = $cur_result->fetch_array(MYSQLI_NUM)) {
fputcsv($cur_file, array_values($row));
}
array_push($arr_result, array('done_process' => "done_cus"));
}
fclose($cur_file);

/******************************** Download user          *********************************/
$cur_filename = $file_dump_area . removeCharEmail($param_email)  . "_" . $param_customer . "1.csv";
$cur_file     = fopen($cur_filename, "w");
$cur_sql      = "CALL android_getCustomer('" .$param_email. "')";
$cur_result   = mysqli_query($con,$cur_sql);

if ($cur_file && $cur_result) {
while ($row = $cur_result->fetch_array(MYSQLI_NUM)) {
fputcsv($cur_file, array_values($row));
}
array_push($arr_result, array('done_process' => "done_user"));
}
fclose($cur_file);


$jsonData = array("received"=>$arr_result);
echo json_encode($jsonData,JSON_PRETTY_PRINT);

function removeCharEmail($val) {
$new_val1 = str_replace(".", "", $val);
$new_val2 = str_replace("@", "", $new_val1);
return $new_val2;
}
?>

Целью этого кода является создание 2 CSV, что и происходит, но проблема в том, что 2-й CSV не имеет данных, хотя запрос показывает некоторые данные, которые он не записывает. Я пытался скопировать 1-ую строку кодов. он создает файл, но не пишет

В чем проблема?

Обновлено с помощью г-на Бармара

я получил эту ошибку Commands out of sync; you can't run this command now

0

Решение

Хранимая процедура, очевидно, возвращает два набора результатов. Вам нужно получить следующий набор результатов, прежде чем вы сможете начать другой запрос. Добавлять:

$cur_result->close();
$con->next_result();

После каждого цикла, который выбирает результаты. Увидеть https://stackoverflow.com/a/14561639/1491895 Больше подробностей.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]