我正在用PHP测试一个简单的函数以更快的方式获取数据,只需放置一个查询参数并使用fetchAll()创建一个数组。
由于fetchAll()返回数组,我是否需要“ return”语句?
function data_extraction($query) {
$query = $co->prepare($sql);
$query->execute()->fetchAll(PDO::FETCH_ASSOC);
// do I need "return $query"?;
}
根据您的评论:
我正在使用此功能来提取一些我稍后需要在程序中使用的结果
听起来确实需要从函数返回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