跨库的项目无法获取到字段信息
时间:2011-09-28
来源:互联网
项目迁移到新服务器上以后,数据跑不起来,DB->create无法进行验证和字段验证。
跟踪一段时间以后,发现是项目无法获取到表的字段,生成的字段缓存中,没有表的字段信息。
进而发现,只要是跨数据库的表就无法生成,当前数据库的都OK。
跟踪一段时间以后,发现是项目无法获取到表的字段,生成的字段缓存中,没有表的字段信息。
进而发现,只要是跨数据库的表就无法生成,当前数据库的都OK。
class TableModel extends RelationModel
{
protected $trueTableName = 'somedbname.`table`';
生成的字段缓存如下:
{
protected $trueTableName = 'somedbname.`table`';
return array (
'_autoinc' => false,
);
?>
目前还没有找到原因。不知道有没有朋友知道这是咋回事。 '_autoinc' => false,
);
?>
作者: vus520 发布时间: 2011-09-28
项目用的TP是SVN最新版。
作者: vus520 发布时间: 2011-09-28
刚刚找到问题了。初步估计是和PHP版本有关。
执行的SQL报错如下:
执行的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模型中定义数据库名。 $result = $this->query('SHOW COLUMNS FROM '.$tableName);
作者: vus520 发布时间: 2011-09-28
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28