$wpdb-即使总是只有一个结果,您也必须使用Foreach吗?

时间:2014-10-31 作者:user79283

我有一个$wpdb查询,它将始终only 返回一个结果。这是它的简化版本:

$results = $wpdb->get_results ( "SELECT name FROM testTable WHERE id=1" );  
我必须使用foreach才能获得单一结果吗?

foreach ($results as $result ) {
   $name = $result->name;
}
或者我可以跳过foreach,改为这样做:

$name = $result->name[0];

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

阅读Codex:

这个get_var 函数返回single variable 从数据库中。虽然只返回一个变量,但查询的整个结果都会被缓存以供以后使用。退货NULL 如果未找到结果。

<?php $wpdb->get_var( \'query\', column_offset, row_offset ); ?> 
因此,对于您来说:

$name = $wpdb->get_var("SELECT name FROM testTable WHERE id=1");
如果您想要一行,请使用get_row:

检索整个row 从查询中,使用get_row. 函数可以返回row 作为object, 一associative array, 或作为numerically indexed array. 如果查询返回多个行,则函数只返回指定的行,但缓存所有行以供以后使用。如果找不到结果,则返回NULL,在参数中使用返回值时请考虑这一点,请参见下面的示例。

结束

相关推荐

如何避免与决定使用它们的db.php/$wpdb和其他插件发生冲突?

我们的插件(VersionPress)需要跟踪数据库更改,以便能够对其进行版本控制。我们目前通过创建db.php 并覆盖$wpdb 但它有一个问题,如果任何其他插件决定重写db.php 会有冲突。我的问题相当笼统:对我来说db.php 在WordPress中,创建一个子类是非常奇怪和不常见的扩展点-为什么?可能会有一个不使用挂钩或过滤器的原因。是因为一些查询是在加载插件之前运行的,并且有机会影响查询吗?或者其他原因?如何解决这个问题?我们希望VersionPress与其他可能创建自己db的插件协作。php