我正在用PHP测试一个简单的函数以更快的方式获取数据,只需放置一个查询参数并使用fetchAll()创建一个数组。
由于fetchAll()返回数组,我是否需要“ return”语句?
function data_extraction($query) {
$query = $co->prepare($sql);
$query->execute()->fetchAll(PDO::FETCH_ASSOC);
// do I need "return $query"?;
}
答案 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