>백엔드 개발 >PHP 튜토리얼 >PHP 작업 Postgresql 캡슐화 클래스 및 전체 응용 프로그램 예

PHP 작업 Postgresql 캡슐화 클래스 및 전체 응용 프로그램 예

不言
不言원래의
2018-04-24 13:47:581797검색

이 기사에서는 주로 PHP 작업 Postgresql 캡슐화 클래스를 소개하고 Postgresql 데이터베이스용 PHP의 일반적인 연결, 쿼리, 통계 및 기타 작업 캡슐화 기술과 사용 방법을 예제 형식으로 분석합니다.

The 이 기사의 예는 PHP Operate 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도 함께 공개했습니다. LAN에 있는 또 다른 postgresql 서버도 테스트해봤는데 쿼리 속도가 여전히 엄청 빠르고, postgregis 데이터 쿼리도 엄청 빠른 것 같아요. 좋은.


<?php
  include &#39;PGDB.php&#39;;
  $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];
  }
?>

관련 권장 사항:

postgreSQL php 및 클라이언트


위 내용은 PHP 작업 Postgresql 캡슐화 클래스 및 전체 응용 프로그램 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.