Неустранимая ошибка: невозможно использовать позиционный аргумент после распаковки аргумента.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Неустранимая ошибка: невозможно использовать позиционный аргумент после распаковки аргумента.

Сообщение Anonymous »

Я получаю эту ошибку при выполнении кода на живом сервереz:
"Неустранимая ошибка: невозможно использовать позиционный аргумент после распаковки аргумента"
Ниже приведен мой код, который я попробовал:

Код: Выделить всё

$EMP_CODE = $_GET['EMP_CODE'];
$FROM_DATE = $_GET['FROM_DATE'];
$TO_DATE = $_GET['TO_DATE'];

// Split EMP_CODE into an array of employee codes
$emp_codes = explode(",", $EMP_CODE);

// Prepare placeholders for the IN clause dynamically
$placeholders = implode(",", array_fill(0, count($emp_codes), "?"));

// SQL query to get the EMP_CODE, DATE, and PUNCH_DATETIME for each punch
$stmt = $conn->prepare(
"SELECT emp_code, DATE(punch_time) AS date, punch_time AS punch_datetime
FROM iclock_transaction
WHERE emp_code IN ($placeholders)
AND DATE(punch_time) BETWEEN ? AND ?
ORDER BY emp_code, date, punch_time"
);

// Bind parameters (EMP_CODE values, FROM_DATE, and TO_DATE)
$stmt->bind_param(str_repeat("s", count($emp_codes)) . "ss", ...$emp_codes, $FROM_DATE, $TO_DATE);

// Execute query
$stmt->execute();
$result = $stmt->get_result();

// Initialize a structure to group results by EMP_CODE
$emp_data = array();

// Fetch results and organize them by EMP_CODE and DATE
while ($row = $result->fetch_assoc()) {
$emp_code = $row['emp_code'];
$date = $row['date'];
$punch_datetime = $row['punch_datetime'];

// If EMP_CODE not in $emp_data, initialize it
if (!isset($emp_data[$emp_code])) {
$emp_data[$emp_code] = array();
}

// If DATE not in $emp_data[EMP_CODE], initialize it
if (!isset($emp_data[$emp_code][$date])) {
$emp_data[$emp_code][$date] = array();
}

// Append PUNCH_DATETIME to the specific EMP_CODE and DATE
$emp_data[$emp_code][$date][] = $punch_datetime;
}

// Structure the response in the required JSON format
foreach ($emp_data as $emp_code => $dates) {
$emp_entry = array("EMP_CODE" => $emp_code, "DATES" => array());

foreach ($dates as $date => $punch_times) {
$emp_entry["DATES"][] = array(
"DATE" => $date,
"PUNCH_DATETIME" => $punch_times
);
}

$response[] = $emp_entry;
}

// Output the response as JSON
echo json_encode($response);
Отлично работает на локальном хосте (с xampp)
Выдает «Неустранимая ошибка: невозможно использовать позиционный аргумент после распаковки аргумента» на работающем сервере (работает Wamp)

Подробнее здесь: https://stackoverflow.com/questions/791 ... -unpacking
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»