是否可以对数据库查询返回的数据执行特定的 PHP 函数,此时该查询仍在运行?
假设我们在某个班级,我们有以下伪 SQL,它应该返回几行:
$results = $this->db->query("SELECT PHP_function(column), column 2 FROM table")->fetchAll(PDO::FETCH_ASSOC);
PHP_function
可以是json_decode
例如。
或者这是不可能的,是否需要对结果进行额外的循环才能做到这一点?
您正在使用的功能的手册页包含一个示例
据我所知,在查询运行时不可能实现 php 操作,您需要获取结果然后循环使用预定义的函数
不,这是不可能的。SQL 引擎(mysql 或任何其他)是一个单独的应用程序。PHP 可以与它通信、发送查询和接收数据。根据您想在该自定义函数中执行的操作,您可以在 mysql 中编写自定义函数来执行相同的操作。
查看create function
文档以获取有关如何执行此操作的信息。
这个问题出在哪里?
<?php
foreach($results as $key=>$res){
$results[$key]['column'] = PHP_function($res['column']);
}
除此之外,MySQL 已经包含了一些有用的功能,所以也许您需要的功能可以在查询中使用