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 相关文章推荐
第五节 克隆 [5]
Oct 09 PHP
建立动态的WML站点(三)
Oct 09 PHP
php heredoc和phpwind的模板技术使用方法小结
Mar 28 PHP
php 文件夹删除、php清除缓存程序
Aug 25 PHP
php数组去重的函数代码
Feb 03 PHP
解析php做推送服务端实现ios消息推送
Jul 01 PHP
async和DOM Script文件加载比较
Jul 20 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
php常用表单验证类用法实例
Jun 18 PHP
php随机显示指定文件夹下图片的方法
Jul 13 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
Nov 21 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
May 29 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
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
php上传文件常见问题总结
2015/02/03 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
JavaScript打开word文档的实现代码(c#)
2012/04/16 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
2018/06/14 jQuery
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
Python实现定时精度可调节的定时器
2018/04/15 Python
Python多图片合并PDF的方法
2019/01/03 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
2020/05/27 Python
Django多数据库联用实现方法解析
2020/11/12 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
C++的几个面试题附答案
2016/08/03 面试题
什么是索引指示器
2012/08/20 面试题
销售总监工作职责
2013/11/21 职场文书
大学生蛋糕店创业计划书
2014/01/13 职场文书
六一儿童节活动策划方案
2014/01/27 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
幼儿园秋季开学寄语
2014/08/02 职场文书
八达岭长城导游词
2015/01/30 职场文书
第一军规观后感
2015/06/12 职场文书