вызов пользовательского массива func — функция в PHP не возвращает результат

У меня есть простой PHP-файл для извлечения данных из Mysql и кодируется в виде строки JSON. Код ниже возвращает результат, как и ожидалось

<?php
require 'dbconnection.php';$tablename = $_GET["tabname"];

$sql = "SELECT * FROM ". $tablename ;

if (!mysqli_query($conn,$sql))
{
echo("Error description: " . mysqli_error($con));
} else {
$res = mysqli_query($conn,$sql);
}

$result = array();while($row = mysqli_fetch_array($res)){
array_push($result,
array('_id'=>$row[0],
'course_name'=>$row[1],
'address'=>$row[2],
'city'=>$row[3],
'state'=>$row[4],
'zipcode'=>$row[5],
'phone'=>$row[6]));
}echo json_encode(array("result"=>$result));
$conn->close();

?>

Образец результата …

{"result":[{"_id":"1","course_name":"Quail Valley","address":"12565 NW Aerts Rd.","city":"Banks","state":"OR","zipcode":"97106","phone":"5033244444"},...]}

Моя цель — использовать переменную, которая была передана в PHP и основана на ее функции вызова имени. Я не могу понять, что я делаю неправильно!

<?php
require 'dbconnection.php';$tablename = $_GET["tabname"];

function Course() {
$sql = "SELECT * FROM ". $tablename ;

if (!mysqli_query($conn,$sql))
{
echo("Error description: " . mysqli_error($conn));
} else {
$res = mysqli_query($conn,$sql);
}

$results = array();

while($row = mysqli_fetch_array($res)){
array_push($results,
array('_id'=>$row[0],
'course_name'=>$row[1],
'address'=>$row[2],
'city'=>$row[3],
'state'=>$row[4],
'zipcode'=>$row[5],
'phone'=>$row[6]));
}
return $results;
}

$result = call_user_func(Course());
// OR... $result = call_user_func($tablename());
echo json_encode(array("result"=>$result));
$conn->close();

?>

Вот вывод …

Error description: {"result":null}

-1

Решение

Предпочтительным способом является прямой путь для: —

$result = Course();

Но если вы хотите использовать call_user_func() затем используйте как ниже: —

$result = call_user_func('Course');

Это потому, что он принимает обратный вызов в виде строки:call_user_func

0

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

Как вы можете видеть в документе php.net http://php.net/manual/fr/function.call-user-func.php

Функция принимает строку в качестве параметра (см. Примеры).

Так и должно быть call_user_func('Course')

1

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