获取特定Gravity Form(ID=2)最新条目的SQL查询需求
解决Gravity Form特定表单最新条目查询问题
你的核心问题是原SQL没有限定目标表单ID(2),且直接查询gf_entry_meta表无法准确关联到对应表单的最新提交条目,以下是修正后的方案:
正确的查询逻辑
Gravity Forms的条目基础信息存在gf_entry表,字段值存在gf_entry_meta表,需要先定位到表单ID=2的最新条目,再获取其对应的元数据:
方法1:分步查询(更直观)
global $wpdb; // 先获取表单ID=2的最新条目ID $entry_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$wpdb->prefix}gf_entry WHERE form_id = %d ORDER BY date_created DESC LIMIT 1", 2 ) ); // 根据条目ID获取对应的所有元数据 if ($entry_id) { $entry_meta = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}gf_entry_meta WHERE entry_id = %d", $entry_id ) ); }
方法2:关联查询(一次性获取)
如果需要直接拿到最新条目的所有元数据,也可以用关联查询:
global $wpdb; $sql = $wpdb->prepare( "SELECT em.* FROM {$wpdb->prefix}gf_entry e JOIN {$wpdb->prefix}gf_entry_meta em ON e.id = em.entry_id WHERE e.form_id = %d ORDER BY e.date_created DESC LIMIT 1", 2 ); $latest_entry_meta = $wpdb->get_results($sql);
关键修正点
- 加入
form_id = 2的筛选条件,确保只获取目标表单的条目 - 基于
gf_entry表的date_created排序,保证拿到的是该表单的最新提交 - 使用
$wpdb->prepare()处理参数,避免SQL注入风险 - 原代码用
$wpdb->query()仅返回受影响行数,改用get_var()或get_results()获取实际数据
内容的提问来源于stack exchange,提问作者jloz312
相关产品推荐
相关产品推荐

