Wordpress如何使用$ wpdb从数据库中检索结果

时间:2013-07-01 16:33:11

标签: sql wordpress

我有一个值表,我希望用户从列表中选择一行,在WordPress页面中使用下拉菜单,并在同一个WordPress页面中填充各个列的值。

我正在尝试学习如何在WordPress中使用$ wpdb类来执行此操作,我试图先了解如何编写将在用户浏览器中显示的内容,但我想我可能会遗漏一些关键部分:

我所做的是在我的WordPress数据库中创建一个名为'wp_axleaa'的表。我正在尝试查询此表,我打印的唯一结果是“Array”

我写了一个插件如下:

<?php
/**
* @package Trying to Connect
* @version 1.6
*/
/*
Plugin Name: Trying to Connect
Plugin URI:
Description: Connecting to DB with $wpdb
Author: Paul J
Version: 1.0
Author URI:
*/

function tc_info() {
    global $display;
    global $wpdb;
    $display = $wpdb->get_results(
    '
    SELECT *
        FROM $wpdb->wp_axleaa
    ');
    print $display;
    }

add_shortcode('showinfo','tc_info');
?> 

然后我将短代码[showinfo]放入我的WordPress网站,当我查看页面时,它只显示“数组”。如果我在SQL语句中添加WHERE子句,那么我会在页面上收到错误消息。

我是新手WordPress并编写PHP,非常感谢任何帮助,如果这是一个冗长的问题,我很抱歉...

非常感谢,

2 个答案:

答案 0 :(得分:1)

那是因为get_results()返回一个数组。您可能希望像这样修改代码:

function tc_info() 
{
    global $wpdb;
    $output = '';

    $sql = 'SELECT * FROM $wpdb->wp_axleaa';

    $rows = $wpdb->get_results( $sql );

    if ( $rows ) {
       foreach ( $rows as $row ){
     $output .= $row[0];
       }
    }
    print $output;  
 }

答案 1 :(得分:0)

您的问题并不完全是检索数据库信息。 首先,短代码值should be return ed 。不是 print ed echo ed 第二,您需要对从数据库查询中收到的数组执行某些操作。

要使用格式良好的数组内容显示而不是print $display;,请使用:

return '<pre>' . print_r( $display, true ) . '<pre>';

如果您想要快速学习,您需要经常查阅文档: