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将数据导入到Foxmail
Oct 09 PHP
PHP 加密与解密的斗争
Apr 17 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
PHP Yaf框架的简单安装使用教程(推荐)
Jun 08 PHP
PHP常用的三种设计模式汇总
Aug 28 PHP
PHP页面跳转实现延时跳转的方法
Dec 10 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
PDO操作MySQL的基础教程(推荐)
Aug 18 PHP
PHP 并发场景的几种解决方案
Jun 14 PHP
PHP Swoole异步Redis客户端实现方法示例
Oct 24 PHP
PHP+Mysql分布式事务与解决方案深入理解
Feb 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
PHP实现网站应用微信登录功能详解
2019/04/11 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
2017/07/06 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
详解vue移动端日期选择组件
2018/02/22 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
VSCode搭建React Native环境
2020/05/07 Javascript
Python set集合类型操作总结
2014/11/07 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
python学生信息管理系统
2018/03/13 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
Pycharm 2020年最新激活码(亲测有效)
2020/09/18 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
Django如何实现防止XSS攻击
2020/10/13 Python
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
怎样填写就业意向
2014/04/02 职场文书
企业授权委托书范本
2014/09/22 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
2014年保管员工作总结
2014/11/18 职场文书
圣诞节开幕词
2015/01/29 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
go语言使用Casbin实现角色的权限控制
2021/06/26 Golang