Нужен ли мне оператор return при использовании fetchAll () в функции? - PullRequest
0 голосов
/ 04 октября 2019

Я тестирую в PHP простую функцию для более быстрого получения данных, просто помещая аргумент запроса и создавая массив с помощью fetchAll ().

Поскольку fetchAll () возвращает массив, выполнитеМне нужен оператор "return" или нет?

PHP

function data_extraction($query) {
    $query = $co->prepare($sql);
    $query->execute()->fetchAll(PDO::FETCH_ASSOC);

    // do I need "return $query"?;
}

1 Ответ

0 голосов
/ 04 октября 2019

Исходя из вашего комментария, что:

Я использую эту функцию для извлечения некоторых результатов, которые мне нужно использовать позже в программе

Звучит таквам нужно вернуть результаты fetchAll() из функции.

Это легко достигается:

function data_extraction($sql) {
    $query = $co->prepare($sql);
    $query->execute();
    $arr = $query->fetchAll(PDO::FETCH_ASSOC);
    return $arr;
}

Это вернет array, созданный fetchAll(), вызывающим абонентам вашегоfunction.

Примечание: вы, вероятно, не хотите возвращать $query, поскольку это даст внешнему абоненту доступ к вашему подготовленному утверждению.

Для использования в вашем коде:

...
$results = data_extraction('SELECT xyz...');

Замена оператора SELECT xyz... выбранным оператором SQL.

NOTE

После важного комментария @YourCommonSense относительно параметризации подготовленных операторов PDO,Я призываю проявлять крайнюю осторожность при добавлении пользовательского контента в операторы SQL без использования параметров. Ссылка, предоставленная @YourCommonSense: здесь , в которой содержится великолепное описание проблемы и способы ее решения.

Этот ответ в первую очередь предназначен для ответа на вопрос Do I use a return statement?, а не How do I safely use PDO prepared statements

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...