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下正则来匹配dede模板标签的代码
Aug 21 PHP
php购物车实现代码
Oct 10 PHP
php提示undefined index的几种解决方法
May 21 PHP
PHP 面向对象详解
Sep 13 PHP
php 修改、增加xml结点属性的实现代码
Oct 22 PHP
带密匙的php加密解密示例分享
Jan 29 PHP
php使用百度ping服务代码实例
Jun 19 PHP
php判断文件夹是否存在不存在则创建
Apr 09 PHP
php单例模式的简单实现方法
Jun 10 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
PHP操作路由器实现方法示例
Apr 27 PHP
PHP 观察者模式深入理解与应用分析
Sep 25 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
我的论坛源代码(八)
2006/10/09 PHP
dedecms系统常用术语汇总
2007/04/03 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
激活 ActiveX 控件
2006/10/09 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
2013/09/05 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
2018/08/08 Javascript
ES6顶层对象、global对象实例分析
2019/06/14 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
使用python实现接口的方法
2017/07/07 Python
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
Python制作动态字符图的实例
2019/01/27 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
Python版中国省市经纬度
2020/02/11 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
python实现银行账户系统
2021/02/22 Python
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
农业开发项目建议书
2014/05/16 职场文书
公司庆典欢迎词
2015/01/26 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技