首页 > 解决方案 > $wpdb -> get_col 返回重复的数组

问题描述

我正在尝试获取“wp_woocommerce_sessions”数据库表中“session_value”列下所有会话的所有值。

下面的代码完成了这项工作,但由于某种原因将结果复制了 6 次,给了我 6 个内容完全相同的数组。

global $wpdb;
$wooSessions = $wpdb->get_col( "SELECT session_value FROM {$wpdb->prefix}woocommerce_sessions" );
$wooCookies = implode(" ", $wooSessions);

我正在阅读文档中有关 OBJECT_K 的信息,该文档理论上会丢弃重复的键,但我不知道如何应用它。如果我在 get_col 括号内添加 OBJECT_K,则代码将停止工作。

这是输出 var_dump ($wooSessions); 给我:

array(1) { [0]=> string(4366) "a:12:{s:4:"cart";s:2084:"a:2:{s:32:"1b4cfd194c804d1ad422a350aa2a0145…"}

array(1) { [0]=> string(4366) "a:12:{s:4:"cart";s:2084:"a:2:{s:32:"1b4cfd194c804d1ad422a350aa2a0145…"}

array(1) { [0]=> string(4366) "a:12:{s:4:"cart";s:2084:"a:2:{s:32:"1b4cfd194c804d1ad422a350aa2a0145…"}

array(1) { [0]=> string(4366) "a:12:{s:4:"cart";s:2084:"a:2:{s:32:"1b4cfd194c804d1ad422a350aa2a0145…"}

array(1) { [0]=> string(4366) "a:12:{s:4:"cart";s:2084:"a:2:{s:32:"1b4cfd194c804d1ad422a350aa2a0145…"}

array(1) { [0]=> string(4366) "a:12:{s:4:"cart";s:2084:"a:2:{s:32:"1b4cfd194c804d1ad422a350aa2a0145…"}

这是另一个使用 session_id 和 session_key 的示例:

global $wpdb;
$wooSessions = $wpdb->get_results( "SELECT DISTINCT session_id, session_key FROM {$wpdb->prefix}woocommerce_sessions GROUP BY session_key" );

它返回以下内容:

Array ( [0] => stdClass Object ( [session_id] => 2149 [session_key] => 76f0552cff4af84e1963815c1fc4a14d ) ) 
Array ( [0] => stdClass Object ( [session_id] => 2149 [session_key] => 76f0552cff4af84e1963815c1fc4a14d ) ) 
Array ( [0] => stdClass Object ( [session_id] => 2149 [session_key] => 76f0552cff4af84e1963815c1fc4a14d ) ) 
Array ( [0] => stdClass Object ( [session_id] => 2149 [session_key] => 76f0552cff4af84e1963815c1fc4a14d ) ) 
Array ( [0] => stdClass Object ( [session_id] => 2149 [session_key] => 76f0552cff4af84e1963815c1fc4a14d ) ) 
Array ( [0] => stdClass Object ( [session_id] => 2149 [session_key] => 76f0552cff4af84e1963815c1fc4a14d ) )

这是另一个选择 session_id 并按 session_id 分组的示例:

global $wpdb;
$wooSessions = $wpdb->get_results( "SELECT session_id FROM {$wpdb->prefix}woocommerce_sessions GROUP BY session_id" );

这是结果:

Array ( [0] => stdClass Object ( [session_id] => 2149 ) )
Array ( [0] => stdClass Object ( [session_id] => 2149 ) )
Array ( [0] => stdClass Object ( [session_id] => 2149 ) )
Array ( [0] => stdClass Object ( [session_id] => 2149 ) )
Array ( [0] => stdClass Object ( [session_id] => 2149 ) )
Array ( [0] => stdClass Object ( [session_id] => 2149 ) )

有什么想法可以为我指明正确的方向吗?提前致谢。

标签: phpmysqldatabasewordpresswoocommerce

解决方案


推荐阅读