3.2.3中建立pgsql数据库模型不能提取字段信息错误的修复

浏览:519 发布日期:2015/03/04 分类:技术分享
修改Pgsql.class.php文件:
/**
* 取得数据表的字段信息
* @access public
* @return array
*/
public function getFields($tableName) {
list($tableName) = explode(' ', $tableName);
$result = $this->query("select a.attname as \"field\",
t.typname as \"type\",
a.attnotnull as \"nll\",
i.indisprimary as \"key\",
d.adsrc as \"default\"
from pg_class c
inner join pg_attribute a on a.attrelid = c.oid
inner join pg_type t on a.atttypid = t.oid
left join pg_attrdef d on a.attrelid=d.adrelid and d.adnum=a.attnum
left join pg_index i on a.attnum=ANY(i.indkey) and c.oid = i.indrelid
where (c.relname='{$tableName}' or c.relname = lower('{$tableName}')) AND a.attnum > 0
order by a.attnum asc;");
$info = [];
if($result){
foreach ($result as $key => $val) {
$info[$val['field']] = array(
'name' => $val['field'],
'type' => $val['type'],
'default' => $val['default'],
'notnull' => (strtolower($val['null']) == 't'), // not null is empty, null is yes
'primary' => (strtolower($val['key']) == 't'),
'autoinc' => false,
);
}
}
return $info;
}

public function getLastInsID()
{
$result = $this->query("SELECT LASTVAL() AS insert_id");
if (($result === falae) or (count($result) ==0)) {
return false;
} else {

return $result[0]['insert_id'];
}
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>