wordpress - 如何使用全局 $wpdb 查询运行 SQL 查询并回显结果
问题描述
我正在尝试使用以下 SQL 查询来计算事件总数。我正在使用 global $wpdb 来回显结果并将它们存储到变量中。
global $wpdb;
$current_d_t = strtotime(date("y-m-d"));
$sql = "SELECT COUNT(post.ID) as eventCountUpcoming FROM wp_posts AS post LEFT JOIN wp_postmeta AS meta ON post.ID = meta.post_id WHERE post.post_type = 'ajde_events' AND meta.meta_key = 'evcal_erow' AND meta.meta_value > $current_d_t AND post.post_status = 'publish' GROUP BY post.ID";
$result = $wpdb->get_results($sql, ARRAY_A);
$result_more = $result->fetch_assoc();
$countEvent = $result_more['eventCountUpcoming'];
收到此错误
调用数组上的成员函数 fetch_assoc()
也尝试了每个循环,使用以下代码,
foreach ($result as $result_more){
$countEvent = $result_more['eventCountUpcoming'];
}
但收到此错误:
解决方案
如果您只是在寻找一个变量作为结果。您可以尝试使用$wpdb->get_var()
global $wpdb;
$current_d_t = strtotime(date("y-m-d"));
$sql = "SELECT COUNT(post.ID) as eventCountUpcoming
FROM {$wpdb->posts} AS post LEFT JOIN {$wpdb->postmeta} AS meta
ON post.ID = meta.post_id
WHERE post.post_type = 'ajde_events'
AND meta.meta_key = 'evcal_erow'
AND meta.meta_value
> {$current_d_t}
AND post.post_status = 'publish';"
$result = $wpdb->get_var($sql);
那么$result
应该是你的计数。
如果您只是计算 Post ID,则不需要 Groupby
推荐阅读
- javascript - 在 d3 图表的 y 轴上正确显示所有月份
- ios - Swift Playgrounds 书架标题
- javascript - 克隆适用于所有点击的元素,而不是这个
- php - Yii2 - 返回空 API 响应
- charts - Flutter Google Chart Gauge - 将标签放置在中心
- php - WordPress 网站上可恢复的致命错误
- node.js - 如何使用 ES6 标准启动服务器
- objective-c - 如何修复目标 c 中的内存泄漏?
- javascript - 在 html5 选择中获取所选选项的键(文本)
- elasticsearch - 应用洞察与弹性(ELK)