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 相关文章推荐
解决phpmyadmin中文乱码问题。。。
Jan 18 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
Nov 01 PHP
PHP中error_log()函数的使用方法
Jan 20 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
May 12 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
PHP基于单例模式实现的数据库操作基类
Jan 15 PHP
PHP与Java对比学习日期时间函数
Jul 03 PHP
php数据库操作model类(使用__call方法)
Nov 16 PHP
搭建自己的PHP MVC框架详解
Aug 16 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
Jun 05 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
May 27 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使用PDO获取结果集的方法
2017/02/16 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
jQuery调用WebService的实现代码
2011/06/19 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
如何在pycharm中安装第三方包
2020/10/27 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
2020/12/31 Python
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
质检部岗位职责
2013/11/11 职场文书
创先争优活动方案
2014/02/12 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书
品牌宣传方案
2014/03/21 职场文书
大学生演讲稿
2014/04/25 职场文书
排查整治工作方案
2014/06/09 职场文书
学校学习雷锋活动总结
2014/07/03 职场文书
驾驶员安全责任书范本
2014/07/24 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
交通安全主题班会
2015/08/12 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis