mysql — PHP: вызов неопределенной функции echocsv ()

Я пытаюсь запустить следующий код

$query = sprintf('SELECT * FROM custfail');
$result = mysql_query($query, $conn) or die(mysql_error($conn));

/*
* send response headers to the browser
* following headers instruct the browser to treat the data as a csv file called export.csv
*/

header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename=custfail.csv');

/*
* output header row (if atleast one row exists)
*/

$row = mysql_fetch_assoc($result);
if ($row) {
echocsv(array_keys($row));
}

/*
* output data rows (if atleast one row exists)
*/

while ($row) {
echocsv($row);
$row = mysql_fetch_assoc($result);
}

/*
* echo the input array as csv data maintaining consistency with most CSV implementations
* - uses double-quotes as enclosure when necessary
* - uses double double-quotes to escape double-quotes
* - uses CRLF as a line separator
*/

function echocsv($fields)
{
$separator = '';
foreach ($fields as $field) {
if (preg_match('/\\r|\\n|,|"/', $field)) {
$field = '"' . str_replace('"', '""', $field) . '"';
}
echo $separator . $field;
$separator = ',';
}
echo "\r\n";

Когда я запускаю код, я получаю файл CSV со следующей ошибкой, расположенной в нем

<b>Fatal error</b>:  Call to undefined function echocsv() in <b>*snip*</b> on line <b>31</b><br />

Номер строки не связан с кодом, опубликованным, так как я удалил некоторый предыдущий код (оператор проверки пароля (в который встроен этот код) и детали подключения SQL), но это происходит при вызове этой функции,

$row = mysql_fetch_assoc($result);
if ($row) {
echocsv(array_keys($row));
}

Кто-нибудь может указать мне в правильном направлении

-1

Решение

Благодаря помощи @RamSharma в его комментариях к вопросу. проблема заключалась в том, что у меня была функция внизу страницы, после того, как она была вызвана

Решение состояло в том, чтобы переместить функцию в строки над вызовом

0

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

Если вы используете «сырой» скрипт * .php, вам нужно определить функцию перед вызовом, основываясь на чтении здесь: http://php.net/manual/en/functions.user-defined.php

«Функции не должны быть определены до того, как на них будут ссылаться, кроме случаев, когда функция определена условно (…)»

-1

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