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 相关文章推荐
56.com视频采集接口程序(PHP)
Sep 22 PHP
PHP中常用数组处理方法实例分析
Aug 30 PHP
Views rows style模板重写代码
May 16 PHP
php二维数组转成字符串示例
Feb 17 PHP
PHP采用XML-RPC构造Web Service实例教程
Jul 16 PHP
Eclipse的PHP插件PHPEclipse安装和使用
Jul 20 PHP
PHP开发Apache服务器配置
Jul 15 PHP
变量在 PHP7 内部的实现(二)
Dec 21 PHP
php curl获取到json对象并转成数组array的方法
May 31 PHP
PHP simplexml_import_dom()函数讲解
Feb 03 PHP
PHP函数积累总结
Mar 19 PHP
thinkphp5 路由分发原理
Mar 18 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实现的ping端口函数实例
2014/11/12 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
2014/01/02 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
Bootstrap插件全集
2016/07/18 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
简述Python2与Python3的不同点
2018/01/21 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
Python多项式回归的实现方法
2019/03/11 Python
Python+threading模块对单个接口进行并发测试
2019/06/25 Python
python读文件的步骤
2019/10/08 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
python语言中有算法吗
2020/06/16 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
Python中Selenium模块的使用详解
2020/10/09 Python
世界上最大的罕见唱片、CD和音乐纪念品网上商店:991.com
2018/05/03 全球购物
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
医科学校毕业生自荐信
2013/11/09 职场文书
英文自我鉴定
2013/12/10 职场文书
教师开学感言
2014/02/14 职场文书
工地质量标语
2014/06/12 职场文书
规范化管理年活动总结
2014/08/29 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP