#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
функции.