SQL Query inside Widget

时间:2012-03-30 作者:Adam Beaumont

我有一个小部件,其中包含以下代码:

<? global $wpdb;
$querystr = "SELECT name FROM wp_venues WHERE name =\'".the_field(\'venue\')."\' ";
$info = $wpdb->get_var($querystr);
echo $info;
?>
我需要的是能够使用表中的信息并将其格式化,所以

Name:
Capacity:
Image:
Description:
目前我只能检索1个字段,我认为get\\u行会有所帮助,但我如何才能分离字段以便格式化。

谢谢

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

"SELECT name FROM wp_venues WHERE name =\'".the_field(\'venue\')."\' "; 将只返回the_field(\'venue\') 这是已知的。

"SELECT * FROM wp_venues WHERE name =\'".the_field(\'venue\')."\' "; 将选择包含所有字段的整行。

尝试过多使用$wpdb->prepare 出于安全原因。

具有$wpdb->get_row 可以将整行作为对象、数字索引数组或关联数组。看到了吗codex on get_row.

例如,您可以执行以下操作:

$row = $wpdb->get_row( $wpdb->prepare("SELECT * FROM wp_venues WHERE name = %s", the_field(\'venue\')));
echo "Name: ".$row->name."\\n";
echo "Capacity: ".$row->capacity."\\n";
echo "Image: ".$row->image."\\n";
echo "Description: ".$row->description."\\n";

Debugging

试试法典中提到的内容:http://codex.wordpress.org/Class_Reference/wpdb#Show_and_Hide_SQL_Errors 并打开WP_DEBUG 在wp配置中。php。

此外:$wpdb->last_query 可以查找以显示上次使用的查询。检索实际执行的查询并手动尝试此查询,查看有哪些结果。

Literature

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post