本文目的

本文目的主要是介绍pgsql扩展与瀚高数据库V9.0如何适配,以及如何在数据库进行业务操作。

pgsql扩展介绍

PHP 提供了两个主要的 API 来与 PostgreSQL 合作:

API 描述
pgsql 原始的 PostgreSQL 扩展
PDO PHP 数据对象,为多种数据库提供一致的接口

PHP的pgsql扩展用于与PostgreSQL数据库进行交互。通过安装pgsql可以在PHP中使用PostgreSQL数据库。

在本文中,我们将重点介绍 pgsql 扩展,因为它更专注于 PostgreSQL并提供了一些独特的特性。

瀚高数据库V9.0介绍

瀚高数据库管理系统 V9(以下简称 HGDB-EEV9),是瀚高公司核心开发团队在深入研究和消化 PostgreSQL最新内核基础上,融合公司多年 Oracle数据库兼容特性研发及运维管理经验,为用户精心打造的一款面向核心 OLTP业务的企业级关系型数据库。

瀚高数据库管理系统 V9 不仅延续了 PostgreSQL最新的内核及功能,同时拓展了丰富的企业级功能。和 PostgreSQL社区版本相比,瀚高数据库管理系统 V9在兼容性、高可用性、高可靠性、安全性、易用性方面都有不同程度的增强。

更多的数据库介绍请参阅 瀚高基础软件股份有限公司-国产基础软件先行者

环境部署

组件 部署工具
PHP Windows环境
appserv-x64-9.3.0.exe(php7.3)
瀚高数据库 Linux环境
V9.0

具体的环境部署请参数组件的部署手册。

  • Php部署成功

  • 数据库部署成功

注:本手册的数据库安装环境为麒麟服务器版V10-SP3+x86(瀚高数据库v9.0目前已全栈适配)

适配过程

安装pgsql插件

PHP安装后,已自带pgsql扩展,只需要修改php.ini启用既可。

extension=pgsql

扩展启用成功如下:

创建pgsql项目

  1. 创建php_pgsql_conn.php
<?php
$host = "host=192.168.3.7";
$port = "port=5866";
$dbname = "dbname=highgo";
$credentials = "user=highgo password=Hello@1234";
$db = pg_connect("$host $port $dbname $credentials");

if(!$db){
echo "Error : Unable to open database <br/>";
} else {
echo "Opened database successfully <br/>";
}

//创建数据表
$sql ="CREATE TABLE IF NOT EXISTS COMPANY (".
"ID INT PRIMARY KEY NOT NULL,".
"NAME TEXT NOT NULL,".
"AGE INT NOT NULL,".
"ADDRESS CHAR(50)," .
"SALARY REAL".
");";

$ret = pg_query($db, $sql);
if(!$ret){
echo pg_last_error($db);
exit;
} else {
echo "Table created successfully <br/>";
}

//插入数据
$sql ="INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)".
"VALUES (1, 'Paul', 32, 'California', 20000.00 );".
"INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)".
"VALUES (2, 'Allen', 25, 'Texas', 15000.00 );".
"INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)".
"VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );".
"INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)".
"VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );";

$ret = pg_query($db, $sql);
if(!$ret){
echo pg_last_error($db);
exit;
} else {
echo "Records created successfully <br/>";
}

//查询数据
$sql ="SELECT * from COMPANY;";
$ret = pg_query($db, $sql);
if(!$ret){
echo pg_last_error($db);
exit;
}

while($row = pg_fetch_row($ret)){
echo "ID = ". $row[0] . "n";
echo "NAME = ". $row[1] ."n";
echo "ADDRESS = ". $row[2] ."n";
echo "SALARY = ".$row[4] ."<br/>";
}

echo "Operation done successfully<br/>";
pg_close($db);

?>
  1. 执行php

  2. 查看数据库