如何在WordPress中获取数据库表ingredients列的最后一条数据?
解决WordPress插件中获取表最后一条数据的问题
你第一次查询返回空数组的核心原因是:表的自增字段是key,而非你代码里使用的id,导致子查询select max(id) from $dp找不到匹配数据。以下是几种正确获取最后一条ingredients数据的方法:
方法一:修正SQL字段,用max(key)定位最后一条
global $wpdb; $table_name = $wpdb->prefix . "test-enes"; // 替换字段为实际存在的`key`,查询最大key对应的ingredients $result = $wpdb->get_results("SELECT `ingredients` FROM `$table_name` WHERE `key` = (SELECT MAX(`key`) FROM `$table_name`)"); // 输出结果 if (!empty($result)) { echo $result[0]->ingredients; // 会输出reer }
方法二:用ORDER BY + LIMIT直接取最后一条(更简洁)
这种写法适合单条数据查询,逻辑更直观:
global $wpdb; $table_name = $wpdb->prefix . "test-enes"; // 按`key`降序排列,取第一条就是最后插入的记录 $result = $wpdb->get_row("SELECT `ingredients` FROM `$table_name` ORDER BY `key` DESC LIMIT 1"); if ($result) { echo $result->ingredients; // 输出reer }
方法三:使用$wpdb->prepare(更安全,防SQL注入)
如果涉及动态表名/字段,推荐用WordPress官方的安全查询方式:
global $wpdb; $table_name = $wpdb->prefix . "test-enes"; $query = $wpdb->prepare( "SELECT `ingredients` FROM `%s` ORDER BY `key` DESC LIMIT 1", $table_name ); $result = $wpdb->get_row($query); if ($result) { echo $result->ingredients; }
另外注意:你代码里出现了$wpdp的笔误,正确的全局数据库变量是$wpdb,后续开发要避免这类拼写错误。
内容的提问来源于stack exchange,提问作者Enes ÖZAY
相关产品推荐
相关产品推荐

