Php 我的查询使用Drupal';s db_select仅获取一项,应获取变量
因此,我使用db_select查询进行Drupal查询 我试图获取最后的$I值,但我只获取最后的值。这是我的密码:Php 我的查询使用Drupal';s db_select仅获取一项,应获取变量,php,mysql,drupal,Php,Mysql,Drupal,因此,我使用db_select查询进行Drupal查询 我试图获取最后的$I值,但我只获取最后的值。这是我的密码: $query = db_select('registration'); $result = $query ->fields('registration', array('registration_id')) ->orderBy('registration_id', 'DESC') ->range(0, $i) ->execute() ->fetchA
$query = db_select('registration');
$result = $query
->fields('registration', array('registration_id'))
->orderBy('registration_id', 'DESC')
->range(0, $i)
->execute()
->fetchAssoc();
注意,$i在程序的前面设置,并在我检查它时提供正确的结果。方法只获取下一行。要获得完整的结果集,您可以像这样迭代所有结果:
$result = $query
->fields('registration', array('registration_id'))
->orderBy('registration_id', 'DESC')
->range(0, $i)
->execute();
while ($row = $result->fetchAssoc()) {
// do something
}
但是,由于您只选择一个字段,我认为更好的获取类型可能是
fetchCol()
。如果在查询中将fetchAssoc()
替换为fetchCol()
,$results
将等于所有结果的零索引数组。如果要避免整个while循环,可以使用fetchAll()
调用
$events = db_select('registration', 'r')
->fields('registration', array('registration_id'))
->orderBy('registration_id', 'DESC')
->range(0, $i)
->execute()
->fetchAll();
我希望您没有试图获取最大的注册id,然后将其递增以用作新行的id。请尝试为$i设置静态值,然后检查$i使用的实际值