声明一个var,将其放在查询中并使用查询的输出?

时间:2014-03-17 作者:David H

所以我想知道是否可以申报variable 你会把它放在query 然后在update_post_meta 作用

这就是我试图做到的。

首先,我连接到另一个数据库,从中获取信息,然后查询结果(在SQL works中测试),如下所示:

 global $newdb;
  $newdb = new wpdb(\'....\', \'....\', \'....\', \'....\');
  $newdb->show_errors();
  $column1  = "member_name";
  $column2  = "memberID";
  $meta_key = "field_12312ewrwe12312";
  $result   = $newdb->get_results("SELECT ".$column1.",".$column2."  FROM members");  
  $columnq  = $newdb->get_results("SELECT ".$column1." FROM members");
  $columnq2 = $newdb->get_results("SELECT ".$column2." FROM members");
最显著的是$columnq$columnq2.

然后,我使用查询字符串在update_post_meta 功能/按钮,并认为这应该在空白放置$column1$column2 单击“提交”后,仅添加实际value 它包含一个新帖子,叫做member_name 每次我提交。

代码:

<form action="" method="post">
    <input type="submit" value="Test" id="submit" name="submit">
    <?php

    if(isset($_POST[\'submit\'])){
        $postargs = array(
            \'post_title\'   => $columnq,
            \'post_status\'  => \'draft\',
            \'post_type\'    => \'bedrijf\'
        );

        $thisid = wp_insert_post ( $postargs, true);

        if ( is_wp_error($thisid) ) {
            return get_error_codes();
        } else {  
            update_post_meta( $thisid, $meta_key, $columnq2);
        }
    }
       var_dump($columnq);
       var_dump($columnq2);
    ?> 

</form>
附言:是var_dump 显示正确的信息。

编辑:添加var_dump.由var_dump 太多了,取而代之的是我会把两者都贴出来。

专栏Q:

array(460) { [0]=> object(stdClass)#1026 (1) { ["member_name"]=> string(18) "Some information" }
第2列:

array(460) { [0]=> object(stdClass)#1486 (1) { ["memberID"]=> string(1) "0" } 
EDIT2:我还放置了var_dump 进入按钮本身(下update_post_meta) 它输出完全相同且正确的信息。然而,在后台代码中,它只添加了一个帖子,其中也包含(no title) 作为名称。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

首先,这令人困惑:

$result   = $newdb->get_results("SELECT ".$column1.",".$column2."  FROM members");  
$columnq  = $newdb->get_results("SELECT ".$column1." FROM members");
$columnq2 = $newdb->get_results("SELECT ".$column2." FROM members");
您应该只需要其中的第一个或最后两个(有一个修改)。

其次get_results 将返回一个数组或对象(默认值),因此在此处使用它是行不通的:

\'post_title\'   => $columnq,
post_title 不接受数组或对象作为值。

如果要从数据库中检索单个字符串值,请使用get_var. 然后这将起作用:

$columnq  = $newdb->get_row("SELECT ".$column1." FROM members");
$postargs = array(
        \'post_title\'   => $columnq,
        \'post_status\'  => \'draft\',
        \'post_type\'    => \'bedrijf\'
);
要检索单行,请使用get_row 并使用适当的语法:

$result   = $newdb->get_results("SELECT ".$column1.",".$column2."  FROM members");  
$postargs = array(
        \'post_title\'   => $result[$column1],
        \'post_status\'  => \'draft\',
        \'post_type\'    => \'bedrijf\'
);
但您的代码仍然有点混乱,因为您似乎正在从外部数据库/表中检索所有行,但试图将这些行当作一行来使用。

$columnq  = $newdb->get_results("SELECT {$column1},{$column2} FROM members");
foreach ($columnq as $c) {
  $postargs = array(
      \'post_title\'   => $c->column1,
      \'post_status\'  => \'draft\',
      \'post_type\'    => \'bedrijf\'
  );
  // code to insert post
}

结束

相关推荐

WP_QUERY->max_num_ages在自定义帖子类型上始终返回0

您好,我正在开发一个主题,我必须用ajax加载一些帖子,在我的索引页面中,一切都正常工作,问题是当我需要在自定义帖子类型上使用它时,我使用wp\\U localize\\u脚本传递jquery文件的值,当我有常规帖子时,它传递正确的值,但当我有自定义帖子类型时,它总是传递0。你能帮帮我吗?非常感谢。将参数传递给jQuery脚本的代码function core_ajax_init() { global $wp_query; // Add code to i