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设计模式 DAO(数据访问对象模式)
Jun 26 PHP
PHP的autoload机制的实现解析
Sep 15 PHP
php ZipArchive压缩函数详解实例
Nov 06 PHP
PHP中的Streams详细介绍
Nov 12 PHP
php常用的url处理函数总结
Nov 19 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
PHP5.2下preg_replace函数的问题
May 08 PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 PHP
php版微信自定义回复功能示例
Dec 05 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
Jun 22 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 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中的HashTable结构详解
2013/06/13 PHP
php实现上传图片文件代码
2015/07/19 PHP
PHP高效获取远程图片尺寸和大小的实现方法
2017/10/20 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
JavaScript通过prototype给对象定义属性用法实例
2015/03/23 Javascript
js带前后翻页的图片切换效果代码分享
2015/09/08 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
Vue实现导航栏菜单
2020/08/19 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
python实现隐马尔科夫模型HMM
2018/03/25 Python
Python延时操作实现方法示例
2018/08/14 Python
python中的json总结
2018/10/11 Python
20行python代码实现人脸识别
2019/05/05 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
应聘教师推荐信
2013/10/31 职场文书
信息学院毕业生自荐信范文
2014/03/04 职场文书
幼儿园教研活动总结
2014/04/30 职场文书
支部鉴定材料
2014/06/02 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle