+ -
当前位置:首页 → 问答吧 → 跨库的项目无法获取到字段信息

跨库的项目无法获取到字段信息

时间:2011-09-28

来源:互联网

项目迁移到新服务器上以后,数据跑不起来,DB->create无法进行验证和字段验证。

跟踪一段时间以后,发现是项目无法获取到表的字段,生成的字段缓存中,没有表的字段信息。

进而发现,只要是跨数据库的表就无法生成,当前数据库的都OK。
class TableModel extends RelationModel
{
        protected $trueTableName = 'somedbname.`table`';
生成的字段缓存如下:
return array (
  '_autoinc' => false,
);
?>
目前还没有找到原因。不知道有没有朋友知道这是咋回事。

作者: vus520   发布时间: 2011-09-28

项目用的TP是SVN最新版。

作者: vus520   发布时间: 2011-09-28

刚刚找到问题了。初步估计是和PHP版本有关。

执行的SQL报错如下:
SHOW COLUMNS FROM dbname.`table``
多了一个反撇号,可以定位错误为TP的BUG或者PHP版本的不兼容,继续跟踪错误中。

作者: vus520   发布时间: 2011-09-28

改了一下数据库驱动类。
问题解决。
    public function getFields($tableName) {
        $result =   $this->query('SHOW COLUMNS FROM '.$tableName);
从现在的问题来看,还可以手工在DB模型中定义数据库名。

作者: vus520   发布时间: 2011-09-28