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 日期时间处理函数小结
Dec 18 PHP
php设计模式 Factory(工厂模式)
Jun 26 PHP
PHPMailer邮件发送的实现代码
May 04 PHP
php设计模式之命令模式使用示例
Mar 02 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
PHP获取MySql新增记录ID值的3种方法
Jun 24 PHP
php中注册器模式类用法实例分析
Nov 03 PHP
WordPress后台中实现图片上传功能的实例讲解
Jan 11 PHP
浅谈PHP中静态方法和非静态方法的相互调用
Oct 04 PHP
YII框架中使用memcache的方法详解
Aug 02 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 PHP
Laravel框架实现文件上传的方法分析
Sep 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
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
python方法生成txt标签文件的实例代码
2018/05/10 Python
对python生成业务报表的实例详解
2019/02/03 Python
django celery redis使用具体实践
2019/04/08 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
定义css设备类型-Media Queries图表简介及使用方法
2013/01/21 HTML / CSS
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
母亲节演讲稿
2014/05/27 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
golang生成并解析JSON
2022/04/14 Golang