php - 编辑 $wpdb->get_results(SQL) 返回的对象

标签 php mysql wordpress

我们使用 Wordpress 函数 $wpdb->get_results(SQL) 进行了一次令人讨厌的数据库调用。

收到 PHP 的结果后,我们需要对结果进行一些更改。

谁能告诉我该怎么做:

1) 从 get_results() 返回的对象中删除特定行。

2)更改返回对象中特定行特定列的值。

即如果返回的对象是 $nastyData,我们需要:

1) 从 $nastyData 中删除特定行

2) 更改 $nastyData 中特定行中特定列的值,例如特定行的 $nastyData->name。

有什么想法吗?

我曾考虑过让 get_results() 以数组形式返回数据,但这会在代码中的其他位置(代码期望接收对象的位置)产生问题。

谢谢, 麦兹

最佳答案

首先,您的“讨厌的数据库调用”应该进行优化,使其不那么讨厌。更具体地说,只查询您想要的结果,这样您就不必删除后面的内容。这是最好的解决方案。

如果您坚持尝试修改对象,这是一个解决方法。根据the documentation ,当返回对象时,它们以两种方式之一返回:

OBJECT - result will be output as a numerically indexed array of row objects.

OBJECT_K - result will be output as an associative array of row objects, using first column's values as keys (duplicates will be discarded).

因此,知道结果是一个对象数组,我们可以使用 foreach 构造获取每个单独的实例:

$results = $wpdb->get_results( $nastySQL );

foreach($results as $index => $result)
{
   // Change name column to FirstName using copy and delete
   $tmp = $result->name;
   unset($result->name);
   $result->FirstName = $tmp;

   // Remove specific row
   if( $result->name == "Tom")
   {
      unset($results[$index]);
   }
}

关于php - 编辑 $wpdb->get_results(SQL) 返回的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16021954/

相关文章:

wordpress - 如何禁用 Plesk 12.0.18 更新通知(特别是对于 WordPress 和客户)

php - 使用 Neo4j 的新闻源中帖子/更新的时间衰减因子

php - Where Like 语句选择具有特定标签的记录

mysql - Ruby on Rails 5 - seeds.rb

php - 我如何使用 mysql 找出本月的订单明智礼帽

iphone - 使站点在 iPhone 上对称对齐

php - 在 PHP 中将 mysql 查询导出到 CSV 的最干净的方法

java - 一种迷宫生成方法的简单实现(随机DFS)

javascript - 倒计时 JavaScript

jquery - TypeError : n. easing[this.easing] 不是函数 jQuery 不起作用