gpt4 book ai didi

php - 如何设置多个重力形式值而不需要为每个重力形式值执行新的数据库查询?

转载 作者:行者123 更新时间:2023-11-29 12:23:41 25 4
gpt4 key购买 nike

我将用户信息存储在与我的 Wordpress 安装不同的数据库中。我正在编写一个插件,用于查询该数据库并以比重形式预填充值。

看起来以下过滤器可以满足我的需要:

add_filter("gform_field_value_$PARAMETER", "FUNCTION");

这样做的问题是我需要为每个参数值调用一个函数。这意味着我查询数据库中的每个值。

因此,如果我有八个预填充值,则数据库会被查询八次。这看起来效率很低。

有没有一种方法可以让我查询数据库一次,获取我需要的所有值,然后将变量传回过滤器?

最佳答案

这是我处理此问题的首选方法。将代码包装在一个类中,并将查询结果存储在该类的变量中。然后,您可以检查该变量是否已包含数据,如果是,则只需返回已检索的数据,而不是再次查询数据库。

class My_GF_Field_Values {

var $data = null;

function __construct() {

add_filter( 'gform_field_value_param1', array( $this, 'func1' ) );
add_filter( 'gform_field_value_param2', array( $this, 'func2' ) );

}

function func1() {

$data = $this->get_data();

return $data['param1'];
}

function func2() {

$data = $this->get_data();

return $data['param2'];
}

function get_data() {

if( $this->data == null ) {
$this->data = array(); // actually do your query and get the data
}

return $this->data;
}

}

关于php - 如何设置多个重力形式值而不需要为每个重力形式值执行新的数据库查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28651875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com