pgsql简单管理程序

接了个不算单子的单子,要写pgsql的简单操作页面。

3个文件。

一个pgsql类,一个common,一个页面。

 

实现连接pgsql数据库,执行语句,返回执行结果。

 

common。php

一个数组过滤函数

 
function addslashes_deep($value)
{
    if (empty($value))
    {
        return $value;
    }
    else
    {
        return is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value);
    }
}

 

pgsql连接类

 

<?php
   /*
   * Create 2010-04-23
   * Author king-of-war
   */
class PostgreSQL {
 
    var $dbhost   = 'localhost';
    var $dbuser   = 'postgres';
    var $dbpw     = 'liujie';
    var $dbname   = '';
    var $dbport   = 5432;
    var $pconnect = 1;      //是否持久连接
    
    var $querynum = 0;
    var $dbconnect;

 

//初始化  
    function PostgreSQL($dbhost,$dbuser,$dbpw,$dbname,$dbport,$pconnect=1) {
  if($dbhost)
  $this->dbhost=$dbhost;
  if($dbuser)
  $this->dbuser=$dbuser;
  if($dbpw)
  $this->dbpw=$dbpw;
  if($dbname)
  $this->dbname=$dbname;
  if($dbport)
  $this->dbport=$dbport;
        $this->pconnect = $pconnect;
        $this->connect();
    }
   

//连接函数,返回一个连接
    function connect() {
        $connect = "host=".$this->dbhost." port=".$this->dbport." dbname=".$this->dbname." user=".$this->dbuser;
        if (!empty($this->dbpw))
            $connect.=" password=".$this->dbpw;
       
        if ($this->pconnect)
            $this->dbconnect=pg_pconnect($connect);
        else
            $this->dbconnect=pg_connect($connect);
 
        if (!$this->dbconnect)
            $this->halt("Cannot connect to database");
    }
 

//执行,返回result
    function query($sql, $silence = 0) {
        $result = pg_query($this->dbconnect, $sql);
        if(!$result && !$silence) {
            $this->halt('PgSQL Query Error', $sql);
        }
        $this->querynum++;
        return $result;
    }
 
    // 执行语句,返回首行

    function & query_first($sql, $result_type = PGSQL_ASSOC) {
        $result = $this->query($sql);
        $returnarray=pg_fetch_array($result, 0, $result_type);
        $this->free_result($result);
        return $returnarray;
    }
    //执行语句,返回所有行
    function & query_all($sql, $result_type = PGSQL_ASSOC) {
        $result = $this->query($sql);
  
        $returnarray = (function_exists("pg_fetch_all"))
            ? pg_fetch_all($result)
            : $this->fetch_all($result, $result_type);
        $this->free_result($result);
  
        return $returnarray;
    }
    //fetch方式
    function fetch_array($result, $row, $result_type = PGSQL_ASSOC) {
        return pg_fetch_array($result, $row, $result_type);
    }
   
    function fetch_all($result) {
        while ($row = pg_fetch_assoc($result)) {
            $array_out[] = $row;
        }
        return $array_out;
    }
   
    function affected_rows() {
        return pg_affected_rows();
    }
 
    function error() {
        return pg_last_error();
    }
 
    function num_rows(&$query) {
        return pg_num_rows($query);
    }
 
    function num_fields(&$query) {
        return pg_num_rows($query);
    }
 
    function free_result(&$query) {
        return pg_free_result($query);
    }
 
    function fetch_row(&$query) {
        return pg_fetch_row($query);
    }
 
    function close() {
        if (!$this->pconnect)
            return pg_close();
    }
  //关闭连接
    function halt($message = '', $sql = '') {
        $timestamp = time();
        $errmsg = '';
   
        $dberror = $this->error();
   
        if($message) {
            $errmsg = "<b>info</b>: $message/n/n";
        }
        $errmsg .= "<b>Time</b>: ".gmdate("Y-n-j g:ia", $timestamp)."/n";
        $errmsg .= "<b>Script</b>: ".$_SERVER['PHP_SELF']."/n/n";
        $errmsg = nl2br($errmsg);
        if($sql) {
            $errmsg .= "<!--/n/nSQL: $sql/n";
        }
        $errmsg .= "Error:  $dberror/n/n-->";
   
        echo "<p>$errmsg</p>";
        exit;
    }
}
?>

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值