Массив неправильно возвращает пустой

Я немного новичок в php, поэтому все еще изучаю входы и выходы. Специфика того, что я на самом деле делаю, по большей части не имеет значения.

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

function searcher ($connector, $select, $from, $where)
{
    $profile = array();

    $query = $connector->prepare('SELECT ' . $select . ' FROM ' . $from . ' WHERE ' . $where);
    $query->execute();

    while ($row = $query->fetch(PDO::FETCH_ASSOC))
    {
        $profle[] = $row;
    }

    print_r($profle);
    return $profile;
}

$connector = db_connection ('localhost', 'sakila', 'root', 'admin');

$search[] = searcher($connector, '*', 'actor', 'actor_id = 1 OR actor_id = 2');
echo "<br><br>";
print_r($search); 

Результат выглядит следующим образом:

Массив ( [0] => Массив ( [actor_id] => 1 [first_name] => PENELOPE [last_name] => GUINESS [last_update] => 2006-02-15 04:34:33 ) [1] => Array ( [actor_id] => 2 [first_name] => НИК [last_name] => WAHLBERG [last_update] => 2006-02-15 04:34:33 ) )

Массив ( [0] => Массив ( ) )

Любая идея, что я делаю неправильно? Я вполне уверен, что это что-то простое, так как ничего сложного не происходит.


person Jack    schedule 17.04.2013    source источник


Ответы (2)


Ваша переменная $profile написана с ошибкой. Наверное поэтому.

Однако код совершенно законен, поэтому вы не получаете никаких предупреждений или уведомлений от синтаксического анализатора.

person silkfire    schedule 17.04.2013
comment
@Джек Бывает со всеми :) - person silkfire; 18.04.2013
comment
Если вы удовлетворены ответом, отметьте его как принятый, нажав зеленую галочку. - person silkfire; 18.04.2013
comment
пришлось ждать 15м и все, пошел афк. - person Jack; 18.04.2013

На самом деле у вас есть 2 разных массива в вашей функции searcher$profile и $profile. В функции вы заполняете $profile значениями и выводите их. Вот почему вы получаете результат в первом случае. Однако ваша функция возвращает пустой массив $profile, который вы выводите в основной программе. Вот почему вы получаете пустой массив во втором случае.

person dmnptr    schedule 17.04.2013