Cette fois, je vais vous donner une explication détaillée des étapes de fonctionnement de la classe encapsulée Postgresql en PHP. Quelles sont les précautions pour faire fonctionner la classe encapsulée Postgresql en PHP. Voici un cas pratique, allons-y. jetez un oeil.
Cette classe encapsule certaines fonctions couramment utilisées. La publication originale contient également du contenu sur le traitement des transactions. Apprenons-en plus plus tard.
Définition du fichier de classe :
<?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; } } ?>
Le php testé a été publié ensemble et un autre serveur postgresql du LAN a été testé. Je pense que la vitesse de requête est toujours très rapide. C'est aussi une bonne affaire.
<?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]; } ?>
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
Détaillé explication des cas d'utilisation du mode PHP singleton
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!