错误情景:在调用TP5的insert方法,插入pgsql表的时候,报错:fields not exists:[id]php
排查缘由:mysql
1.已根据网上的教程,运行了tp5/thinkphp/connector/pgsql.sql,开启了php版本里面关于pgsql的两个dll扩展初步判断应该是框架的问题sql
2.tp版本是5.0,因而打算用较高的tp版本,进行insert/save方法插入数据,还行不行,用getTableFields()方法也只能获取到mysql的表字段而不能获得pgsql的表字段,可是用框架的count()和select()方法,是没啥问题的thinkphp
解决办法:框架
在tp5中,save,insert,select,都是框架封装的方法,对于mysql是比较友好的,可是估计是框架缘由,pgsql在使用这些方法时,有的方法用不了,因此只能使用原始的解决办法,使用sql执行ide
$sql="insert into test(id,name) values(111,'2222')"; $res=Db::connect($connection)->table("test")->execute($sql);