Drupal 7主题('pager') - > PDOException:SQLSTATE [42S02]:找不到基表或视图

时间:2015-01-26 08:21:24

标签: drupal drupal-7 themes drupal-theming

我很长一段时间以来第一次在论坛上寻求帮助。通常通过查看其他帖子找到我需要的东西...... 我真的很困惑,所以需要帮助。

我正在尝试使用Drupal 7中的theme('pager')对我从db_select查询得到的表格结果进行分页。

当我包含以下行时,以下查询会产生错误:

$output .= theme('pager');

如果我离开这条线,我会从我的桌子上得到预期的有限的5个结果。

我的代码:

// Set external databse
db_set_active('nondrupal');

// build query to get desired results
$query = db_select('diary', 'n')
->fields('n', array('photo_id', 'photo'))
->orderBy('photo_id', 'DESC');

//Create a new object from extend. The reason for this is that extend() creates a new object which wraps the current object (Decorator pattern).
$query = $query->extend('PagerDefault')->limit(5);

// Execute query and add to array
$result = $query->execute();

// empty output var
$output = NULL;

// Loop through results and output each row for chosen columns
foreach($result as $row) {
$output .= $row->photo_id.': '.$row->photo.'<br />';
}

// Show pagination in output
$output .= theme('pager');

// echo output to screen
echo $output;    

// Set db connection back to default (drupal)
db_set_active();

在没有theme('pager')行的情况下页面呈现正常。

有了它我得到一个错误:

Additional uncaught exception thrown while handling exception.
Original

PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table  
&#039;dbMYDATABASENAME.semaphore&#039; doesn&#039;t exist: SELECT expire, 
value FROM {semaphore} WHERE name = :name; Array ( [:name] =&gt; 
theme_registry:runtime:garland:cache ) in lock_may_be_available() (line 167 
of /homepages/28/d228752694/htdocs/drupal7/includes/lock.inc).

未找到基表或视图似乎是关键,但我不明白为什么包含主题功能会导致此错误。我有一个基本的Drupal 7安装。

感谢您的帮助!

Madmilner

1 个答案:

答案 0 :(得分:2)

错误发生在:

// Show pagination in output 
$output .= theme('pager'); 
// echo output to screen 
echo $output; 

高于db_set_active();

不确定为什么会这样,但它解决了问题。

由于