ホームページ >バックエンド開発 >PHPチュートリアル >PHP 操作 Postgresql カプセル化クラスと完全なアプリケーション例
この記事では、主に PHP 操作 Postgresql カプセル化クラスを紹介し、Postgresql データベース用の一般的な接続、クエリ、統計、その他の操作カプセル化技術と使用方法をサンプルの形で分析します。この記事の例では、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 '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];
}
?>関連する推奨事項:
postgreSQL php とクライアント以上がPHP 操作 Postgresql カプセル化クラスと完全なアプリケーション例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。