在函数中使用fetchAll()时需要“ return”语句吗?

问题描述 投票:-2回答:1

我正在用PHP测试一个简单的函数以更快的方式获取数据,只需放置一个查询参数并使用fetchAll()创建一个数组。

由于fetchAll()返回数组,我是否需要“ return”语句?

PHP

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

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

php function
1个回答
0
投票

根据您的评论:

我正在使用此功能来提取一些我稍后需要在程序中使用的结果

听起来确实需要从函数返回fetchAll()的结果。

这很容易实现:

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

这将把array产生的fetchAll()返回给函数的调用者。

注意:您可能不希望返回$query,因为这将使外部呼叫者可以访问您准备好的语句。

要在您的代码中使用:

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

用您选择的SQL语句替换SELECT xyz...语句。

NOTE

[@YourCommonSense发表重要评论后,我对在不使用参数的情况下将用户内容注入SQL语句中时,要格外谨慎,我敦促非常谨慎。 @YourCommonSense提供的参考是here,其中对该问题及其解决方法进行了详尽的描述。

此答案主要用于解决问题Do I use a return statement?而不是How do I safely use PDO prepared statements

© www.soinside.com 2019 - 2024. All rights reserved.