pgsql 接口

此接口是使用PostgreSQL扩展 ,在PHP 5.3x中默认是启用的。

常用函数

  • pg_connect 打开一个 PostgreSQL或HGDB 连接 。
  • pg_close 关闭一个 PostgreSQL 连接。
  • pg_delete 删除记录。
  • pg_query 执行查询。
  • pg_select 选择记录。
  • pg_update 更新表。
  • pg_result_error 获得查询结果的错误信息 。
  • pg_execute 发送执行请求,并等待结果。
  • pg_fetch_all 从结果中提取所有行作为一个数组。
  • pg_fetch_array 提取一行作为数组。
  • pg_fetch_assoc 提取一行作为关联数组。
  • pg_fetch_object 提取一行作为对象。
  • pg_fetch_result 从结果资源中返回值。
  • pg_fetch_row 提取一行作为枚举数组。
  • pg_field_is_null 测试字段是否为 NULL。
  • pg_field_name 返回字段的名字。
  • pg_field_num 返回字段的编号

示例代码

php_pgsql_conn.py

<?php
$host = "host=192.168.2.5";
$port = "port=5866";
$dbname = "dbname=test";
$credentials = "user=test password=test";

$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);
?>

执行结果:

image-20220519164302405

image-20220519164320437