【问题标题】:How to get selected columns from the database using $wpdb->get_results();如何使用 $wpdb->get_results() 从数据库中获取选定的列;
【发布时间】:2020-09-15 03:08:54
【问题描述】:

我正在 $wpdb->get_results() 中寻找与 PDO::FETCH_NUM 等效的解决方案。

这就是我想要实现的目标:

function get_data( $token, $field ){
        global $wpdb;
        $wpdb->show_errors();
        $result = $wpdb->get_results('SELECT '.$field.' FROM ' . $this->get_table(). '  WHERE  token =\''.$token.'\' ORDER BY id DESC');

        return $result[0];

    }

从上面的查询中可以看出,我正在从数据库中选择特定的列,但我不知道如何使用 $wpdb->get_results(); 访问选定的列。

我想根据 where 子句条件获取 $field 列的值。

【问题讨论】:

    标签: wordpress wordpress-theming


    【解决方案1】:

    经过深入研究,我得到了解决方案。

    基本上,这就是获取$field 列的方法。

    function get_data( $token, $field ){
        global $wpdb;
        $wpdb->show_errors();
        $result = $wpdb->get_results('SELECT '.$field.' FROM ' . $this->get_table(). '  WHERE  token =\''.$token.'\' ORDER BY id DESC');
    
        $data = ""; 
    
        foreach ($result as $key => $value) {
            $data = $value->$field;
        }
    
        return $data; 
    }
    

    为简单起见,假设您有一个名为first_name 的列,这是从数据库中获取first_name 列的方法。

    function get_data( $token ){
        global $wpdb;
        $wpdb->show_errors();
        $result = $wpdb->get_results('SELECT first_name FROM your_table_name WHERE  token =\''.$token.'\' ORDER BY id DESC');
    
        foreach ($result as $key => $value) {
            echo $data = $value->first_name;
        }
    }
    

    【讨论】:

    • 如果没有 foreach 循环,你怎么能得到这个。假设一个正在选择一个不需要循环的计数(列),有什么直接的方法可以得到它?
    猜你喜欢
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多