Drupal 7 主题 ('pager') -> PDOException: SQLSTATE[42S02]: Base table or view not found

Drupal 7 theme('pager') -> PDOException: SQLSTATE[42S02]: Base table or view not found

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

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

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

$output .= theme('pager');

如果我离开这一行,我会从我的 table 中得到预期的有限 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).

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

感谢您的帮助!

玛德米尔纳

错误归结为:

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

高于db_set_active();

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

谢谢