mysqli_query не работает внутри функции array_map

#php #arrays #multidimensional-array

#php #массивы #многомерный массив

Вопрос:

Mysqli_query не работает внутри функции array_map. Мой код :

 define('DB_SERVER','localhost');
define('DB_USERNAME','xxx');
define('DB_PASSWORD','yyy');
define('DB_NAME','fff');

$conn = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_NAME);

foreach($unique_array as $supplier) 
{
     $urep[]=$supplier['rep_name'];
     $udate[]=$supplier['date'];
$ucid[]=$supplier['cid'];

$unique_arrayyy[] = array('rep_name'=>$supplier['rep_name'], 'date'=>$supplier['date']);
}

array_map(function ($var) {
$fetch_gdd=mysqli_query($conn,"select * from grade");

echo mysqli_num_rows($fetch_gdd); exit;

}, $unique_arrayyy);
  

$unique_arrayyy включает значения многомерного массива. Я хочу запустить запрос внутри функции array_map. Во время выборки строки она выдает мне пустое окно. Пожалуйста, помогите.

Комментарии:

1. Добавить error_reporting(E_ALL); ini_set('display_errors',1); в начало страницы сразу после <?php объявления также изменить, как:- $fetch_gdd=mysqli_query($conn,"select * from grade")or die (mysqli_error($conn));

Ответ №1:

У вас нет соединения, доступного в области действия вашей анонимной функции, $conn не определено.

 array_map(function ($var) use ($conn) {
                          ^^^^^^^^^^^ Make $conn available in the function
    $fetch_gdd=mysqli_query($conn,"select * from grade");

    echo mysqli_num_rows($fetch_gdd);
    // don't exit here

}, $unique_arrayyy);
  

Также обратите внимание, что вы, вероятно, не хотите останавливать скрипт в своей функции, поэтому я exit; также удалил инструкцию.

Также обратите внимание, что я предполагаю, что это всего лишь пример кода; вы не используете $var его внутри своей функции, и если вы каждый раз выполняете один и тот же запрос, вам не следует делать это в array_map функции.