ThinkPHP 3.2 + PostgreSQL 9.4 的错误及解决办法

现象

在ThinkPHP Controller里一个简单的M('user')调用就会出错。排除了数据库配置方面的原因。

有多个网友详细的描述了这个错误现象,我遇到的错误跟他们是一样的。

http://www.thinkphp.cn/topic/30273.html
http://www.thinkphp.cn/bug/3200.html *
http://www.thinkphp.cn/bug/3332.html
http://www.thinkphp.cn/bug/3413.html *
http://www.thinkphp.cn/bug/3525.html

这些链接都指向同一个错误。

解决办法

上面带 * 号的两个链接里面各有部分解决方案,加起来正好能够解决问题。

好吧,我具体说一下如何解决这个错误,共两项操作,希望对某些朋友有帮助:

在 PostgreSQL 里添加自定义函数 table_msg

复制以下代码到SQL管理器里执行即可:

注意:我满世界搜索都找不到 table_msg 的权威出处,只有这么一个第三方的文章:http://lovejuan1314.iteye.com/blog/1167680

CREATE OR REPLACE FUNCTION pgsql_type(a_type varchar) RETURNS varchar AS
$BODY$
DECLARE
     v_type varchar;
BEGIN
     IF a_type='int8' THEN
          v_type:='bigint';
     ELSIF a_type='int4' THEN
          v_type:='integer';
     ELSIF a_type='int2' THEN
          v_type:='smallint';
     ELSIF a_type='bpchar' THEN
          v_type:='char';
     ELSE
          v_type:=a_type;
     END IF;
     RETURN v_type;
END;
$BODY$
LANGUAGE PLPGSQL;

CREATE TYPE 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值