PHP操作Postgresql封装类与应用完整实例


Posted in PHP onApril 24, 2018

本文实例讲述了PHP操作Postgresql封装类与应用。分享给大家供大家参考,具体如下:

这个类封装了一些常用的函数,原帖里面还有事务处理的内容,以后再学习吧。

类文件定义:

<?php
class pgsql {
private $linkid; // PostgreSQL连接标识符
private $host; // PostgreSQL服务器主机
private $port; // PostgreSQL服务器主机端口
private $user; // PostgreSQL用户
private $passwd; // PostgreSQL密码
private $db; // Postgresql数据库
private $result; // 查询的结果
private $querycount; // 已执行的查询总数
/* 类构造函数,用来初始化$host、$user、$passwd和$db字段。 */
function __construct($host, $port ,$db, $user, $passwd) {
$this->host = $host;
$this->port = $port;
$this->user = $user;
$this->passwd = $passwd;
$this->db = $db;
}
/* 连接Postgresql数据库 */
function connect(){
try{
$this->linkid = @pg_connect("host=$this->host port=$this->port dbname=$this->db
user=$this->user password=$this->passwd");
if (! $this->linkid)
throw new Exception("Could not connect to PostgreSQL server.");
}
catch (Exception $e) {
die($e->getMessage());
}
}
/* 执行数据库查询。 */
function query($query){
try{
$this->result = @pg_query($this->linkid,$query);
if(! $this->result)
throw new Exception("The database query failed.");
}
catch (Exception $e){
echo $e->getMessage();
}
$this->querycount++;
return $this->result;
}
/* 确定受查询所影响的行的总计。 */
function affectedRows(){
$count = @pg_affected_rows($this->linkid);
return $count;
}
/* 确定查询返回的行的总计。 */
function numRows(){
$count = @pg_num_rows($this->result);
return $count;
}
/* 将查询的结果行作为一个对象返回。 */
function fetchObject(){
$row = @pg_fetch_object($this->result);
return $row;
}
/* 将查询的结果行作为一个索引数组返回。 */
function fetchRow(){
$row = @pg_fetch_row($this->result);
return $row;
}
/* 将查询的结果行作为一个关联数组返回。 */
function fetchArray(){
$row = @pg_fetch_array($this->result);
return $row;
}
/* 返回在这个对象的生存期内执行的查询总数。这不是必须的,但是您也许会感兴趣。 */
function numQueries(){
return $this->querycount;
}
}
?>

测试的php一并放出,另外测试了下局域网内的另一台postgresql服务器,感觉查询速度还是很快的,查询postgregis数据也是杠杠滴。

<?php
  include 'PGDB.php';
  $PG = new pgsql("192.168.1.167", "5432", "postgis", "postgres", "post");
  $PG->connect();
  if(!$PG)
  {
    $db_error = "无法连接到PostGreSQL数据库!";
    echo $db_error;
  }
  else
  {
    echo "成功连接!";
    $query = "select name from ex where gid = 2";
    $result = $PG->query($query);
    $row = $PG->fetchRow();
    echo $row[0];
  }
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php MYSQL 数据备份类
Jun 19 PHP
php写的简易聊天室代码
Jun 04 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
Jun 09 PHP
php实现简单文件下载的方法
Jan 30 PHP
php实现cookie加密的方法
Mar 10 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
May 08 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
Jun 12 PHP
PHP结合Vue实现滚动底部加载效果
Dec 17 PHP
ThinkPHP5框架缓存查询操作分析
May 30 PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 PHP
mongodb和php的用法详解
Mar 25 PHP
php接口实现拖拽排序功能
Apr 23 #PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 #PHP
PHP生成推广海报的方法分享
Apr 22 #PHP
PHP排序算法之归并排序(Merging Sort)实例详解
Apr 21 #PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 #PHP
Laravel模型间关系设置分表的方法示例
Apr 21 #PHP
PHP排序算法之基数排序(Radix Sort)实例详解
Apr 21 #PHP
You might like
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
2013/04/02 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
2016/10/09 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
浅谈Node Inspector 代理实现
2017/10/19 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
JS函数进阶之prototy用法实例分析
2020/01/15 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
Python中datetime常用时间处理方法
2015/06/15 Python
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
python函数的5种参数详解
2017/02/24 Python
理解python中生成器用法
2017/12/20 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
2018/01/08 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
html5摇一摇代码优化包括DeviceMotionEvent等等
2014/09/01 HTML / CSS
股东授权委托书范文
2014/09/13 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
2015年学生会个人工作总结
2015/04/09 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书