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

时间:2019-10-04 14:44:34

标签: php function

我正在用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 :(得分: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...语句。

注意

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

此答案主要是针对问题Do I use a return statement?而不是How do I safely use PDO prepared statements