使用$WPDB从数据库获取数据

时间:2015-03-18 作者:Interactive

我错过了一些东西
我只是想从数据库中获取数据。所以我尝试了这个,但一直给我一个错误。

global $wpdb;
$sql = "SELECT * FROM $wpdb->postmeta WHERE group=\'$group\'";
$results = $wpdb->get_results($sql) or die(mysql_error());

foreach( $results as $result ) {

    echo $result->company_name;

}
$group 是在url中传递的参数,变量为$group = $_GET[\'group\'];

这是错误:

WordPress数据库错误:[您的SQL语法有错误;请查看与MySQL server版本相对应的手册,以了解在第1行的“group=\'bicyclegroup\'附近要使用的正确语法]从xx\\u postmeta中选择*,其中group=\'thegroup\'您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第1行“group=\'thegroup\'附近要使用的正确语法

谁能帮我一次性解决这个问题,这样我就可以在本地保存它,并将其用于进一步的项目:-)

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

可能是因为group 在Posteta表中不存在。您的meta\\u键可能被调用group 并且具有的meta\\u值bicyclegroup. 这是假设您没有修改Posteta表。您可以尝试的是:

$sql = "SELECT * FROM $wpdb->postmeta WHERE meta_key = \'group\' AND meta_value=\'$group\'";
这将返回:

另一个选择是通过post meta获取所有帖子是一个辅助查询WP_Query. 要执行此操作,请执行以下操作:

$test_posts = new WP_Query( array(
    \'post_type\'      => \'post\',
    \'posts_per_page\' => -1,
    \'meta_key\'       => \'group\',
    \'meta_value\'     => $group
) );

<?php if( $test_posts->have_posts() ) : ?>

    <?php while( $test_posts->have_posts() ) : $test_posts->the_post(); ?>

        <h1><?php the_title(); ?></h1>
        <?php the_content(); ?>

    <?php endwhile; ?>

<?php endif; ?>
我不确定你是否在使用post 是您的帖子类型,因此请相应更改该字段。

结束

相关推荐

$wpdb->Get_Results内存泄漏

我开发了一个wordpress插件,可以读取大型自定义xml文件,并将信息作为自定义帖子类型和大量帖子元信息导入。所以我调用了很多数据库事务。插件在一个POST\'ed进程内运行几分钟,然后在内存不足(250 MB)的情况下中止。将问题跟踪到最低限度我有一个显示问题的最低限度的示例。这个例子泄漏了大约18 kbyte的数据,这在插件运行时是一个很大的总结。查询检查是否存在具有给定标题的帖子($title)echo \"<p>memory: \" . memory_get_usage() . \