如何解析来自$wpdb->GET_RESULTS的行结果

时间:2011-07-19 作者:redconservatory

我有以下几点:

$query = \'SELECT * FROM wp_pod_tbl_add_questions WHERE id LIKE \'. $id;

                                        $row = $wpdb -> get_results($query);
如何从$行获取名为“id”和“name”的列?

4 个回复
最合适的回答,由SO网友:Pippin 整理而成
foreach( $wpdb->get_results("SELECT * FROM your_table_name WHERE id LIKE\' . $id . \';") as $key => $row) {
// each column in your row will be accessible like this
$my_column = $row->column_name;}

More info here

SO网友:Garet Claborn

To use as an associative array:

$obj=[];
$rows =  $wpdb->get_results( \'SELECT * FROM `tbl_name` WHERE `id` = \'.$obj_id , ARRAY_A);
foreach($rows as $row){  $obj=$row; break; }

// $obj is now the selected row if a match was found
使用情况

$something = $obj[\'column_name\'];
foreach($obj as $col => $val)
    echo $col . \': \' . $val . PHP_EOL . \'<br />\';
要获取其他格式,只需更改ARRAY_A 基于documentation for $wpdb->get_results(). 皮平的回答适用于大多数对象使用。

To use one row as an numerically indexed array

$rows =  $wpdb->get_results( \'SELECT * FROM `tbl_name` WHERE `id` = \'.$obj_id , ARRAY_N);
foreach($rows as $row){  $obj=$row; break; }

//Usage
foreach($obj as $col_value) echo $col_value . \' \';
To use one row in an array whose keys are the primary key from your database(通常是id 列)。可能比关联数组方法更有效。

$rows =  $wpdb->get_results( \'SELECT * FROM `tbl_name` WHERE `id` = \'.$obj_id ,  OBJECT_K);
$obj = $rows[ $obj_id ];

//Usage

$something = $obj->column_name;

//Remember you can loop over objects too
foreach($obj as $col => $val)
    echo $col . \': \' . $val . PHP_EOL;

SO网友:Jismon Thomas

此代码非常适合我:

global $wpdb;
$table_name = "my_table_name";
$myrows = $wpdb->get_results( "SELECT `id`, `name` FROM ".$table_name);
    foreach ($myrows as $details) {
      echo $details->id;
      echo $details->name;}    

SO网友:Jeff Rose

始终尝试WordPress Codex:http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results

基本上给定了默认语法,这里的变量$row是一个包含结果的对象。您也可以指定结果的类型(数字数组、关联数组)。

假设只有一个结果,那么$row->id和$row->name应该为您提供信息。

如果返回多个结果,则需要循环对象中的条目。

如果您只希望返回一行,请尝试使用$wpdb->get\\u rowhttp://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Row

结束

相关推荐

$wpdb->Query()多查询支持

遇到了一个问题,即我无法使用$wpdb->query(). 生成的查询直接在phpmyadmin中运行良好,因此它只在ezSQL类中运行。也许是故意的?我找到了这个http://wordpress.org/support/topic/wpdb-gtquery-fails-when-multiple-update-statements-are-used 这也说明了它的设计。有人能证实吗?ezSQL文档没有提到任何关于多查询支持的内容。如果您必须主要执行一系列查询(插入/更新/删除),除了使用$wpdb