PostgreSQL连接PHP

开发 后端 PostgreSQL
PostgreSQL的扩展是默认启用的最新版本的PHP5.3.x.但是它可能通过在编译时加上--without-pgsql 选项禁用。

安装

PostgreSQL的扩展是默认启用的***版本的PHP5.3.x.但是它可能通过在编译时加上--without-pgsql 选项禁用。但仍然可以使用yum命令安装PHP的PostgreSQL的接口:

  1. yum install php-pgsql 

在开始使用PHP PostgreSQL接口,打开pg_hba.conf文件(在PostgreSQL安装目录),并添加下面一行:

  1. # IPv4 local connections: 
  2. host    all         all         127.0.0.1/32          md5 

使用start/restart启动Postgres服务器,它没有运行使用下面的命令:

  1. [root@host]# service postgresql restart 
  2. Stopping postgresql service:                               [  OK  ] 
  3. Starting postgresql service:                               [  OK  ] 

Windows用户必须启用php_pgsql.dll为了使用这个扩展。这个DLL包含带Windows分布在***版本PHP5.3.x

有关详细的安装说明,请查看我们的PHP教程和其官方网站上。

PHP 接口APIs

以下是重要的PHP程序,可以连接使用PostgreSQL数据库PHP程序。如果正在寻找一个更复杂的应用程序,那么可以看看到PHP官方文件。

 

Windows用户必须启用php_pgsql.dll为了使用这个扩展。这个DLL包含带Windows分布在***版本PHP5.3.x

有关详细的安装说明,请查看我们的PHP教程和其官方网站上。

PHP 接口APIs

以下是重要的PHP程序,可以连接使用PostgreSQL数据库PHP程序。如果正在寻找一个更复杂的应用程序,那么可以看看到PHP官方文件。

 

连接到数据库

下面的PHP代码显示了如何连接到一个现有的在本地机器上的数据库,***将返回一个数据库连接对象。

  1. <?php 
  2.    $host        = "host=127.0.0.1"
  3.    $port        = "port=5432"
  4.    $dbname      = "dbname=testdb"
  5.    $credentials = "user=postgres password=pass123"
  6.  
  7.    $db = pg_connect( "$host $port $dbname $credentials"  ); 
  8.    if(!$db){ 
  9.       echo "Error : Unable to open database\n"
  10.    } else { 
  11.       echo "Opened database successfully\n"
  12.    } 
  13. ?> 

 

现在让我们运行上面的程序来打开数据库testdb,如果成功打开数据库,然后它会给下面的消息:

  1. Opened database successfully 

创建表

下面的PHP程序将使用以前创建的数据库中创建一个表:

  1. <?php 
  2.    $host        = "host=127.0.0.1"
  3.    $port        = "port=5432"
  4.    $dbname      = "dbname=testdb"
  5.    $credentials = "user=postgres password=pass123"
  6.  
  7.    $db = pg_connect( "$host $port $dbname $credentials"  ); 
  8.    if(!$db){ 
  9.       echo "Error : Unable to open database\n"
  10.    } else { 
  11.       echo "Opened database successfully\n"
  12.    } 
  13.     
  14.    $sql =<<<EOF 
  15.       CREATE TABLE COMPANY 
  16.       (ID INT PRIMARY KEY     NOT NULL
  17.       NAME           TEXT    NOT NULL
  18.       AGE            INT     NOT NULL
  19.       ADDRESS        CHAR(50), 
  20.       SALARY         REAL); 
  21. EOF; 
  22.  
  23.    $ret = pg_query($db, $sql); 
  24.    if(!$ret){ 
  25.       echo pg_last_error($db); 
  26.    } else { 
  27.       echo "Table created successfully\n"
  28.    } 
  29.    pg_close($db); 
  30. ?> 

上述程序执行时,它会创建表COMPANY在数据库testdb 中 ,它会显示以下消息:

  1. Opened database successfully 
  2. Table created successfully 

INSERT操作

PHP程序,显示我们如何创建表COMPANY 在上面的例子中,创建表中的记录:

  1. <?php 
  2.    $host        = "host=127.0.0.1"
  3.    $port        = "port=5432"
  4.    $dbname      = "dbname=testdb"
  5.    $credentials = "user=postgres password=pass123"
  6.  
  7.    $db = pg_connect( "$host $port $dbname $credentials"  ); 
  8.    if(!$db){ 
  9.       echo "Error : Unable to open database\n"
  10.    } else { 
  11.       echo "Opened database successfully\n"
  12.    } 
  13.  
  14.    $sql =<<<EOF 
  15.       INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) 
  16.       VALUES (1, 'Paul', 32, 'California', 20000.00 ); 
  17.  
  18.       INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) 
  19.       VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); 
  20.  
  21.       INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) 
  22.       VALUES (3, 'Teddy', 23, 'Norway', 20000.00 ); 
  23.  
  24.       INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) 
  25.       VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 ); 
  26. EOF; 
  27.  
  28.    $ret = pg_query($db, $sql); 
  29.    if(!$ret){ 
  30.       echo pg_last_error($db); 
  31.    } else { 
  32.       echo "Records created successfully\n"
  33.    } 
  34.    pg_close($db); 
  35. ?> 

上述程序执行时,它会创建COMPANY表中的记录,并会显示以下两行:

  1. Opened database successfully 
  2. Records created successfully 

SELECT 操作

PHP程序表明我们如何获取并显示COMPANY 在上面的例子中创建表的记录:

  1. <?php 
  2.    $host        = "host=127.0.0.1"
  3.    $port        = "port=5432"
  4.    $dbname      = "dbname=testdb"
  5.    $credentials = "user=postgres password=pass123"
  6.  
  7.    $db = pg_connect( "$host $port $dbname $credentials"  ); 
  8.    if(!$db){ 
  9.       echo "Error : Unable to open database\n"
  10.    } else { 
  11.       echo "Opened database successfully\n"
  12.    } 
  13.  
  14.    $sql =<<<EOF 
  15.       SELECT * from COMPANY; 
  16. EOF; 
  17.  
  18.    $ret = pg_query($db, $sql); 
  19.    if(!$ret){ 
  20.       echo pg_last_error($db); 
  21.       exit; 
  22.    }  
  23.    while($row = pg_fetch_row($ret)){ 
  24.       echo "ID = ". $row[0] . "\n"
  25.       echo "NAME = ". $row[1] ."\n"
  26.       echo "ADDRESS = ". $row[2] ."\n"
  27.       echo "SALARY =  ".$row[4] ."\n\n"
  28.    } 
  29.    echo "Operation done successfully\n"
  30.    pg_close($db); 
  31. ?> 

当上述程序执行时,它会产生以下结果。字段返回序列中,它们被用来创建表的同时保持注意。

  1. Opened database successfully 
  2. ID = 1 
  3. NAME = Paul 
  4. ADDRESS = California 
  5. SALARY =  20000 
  6.  
  7. ID = 2 
  8. NAME = Allen 
  9. ADDRESS = Texas 
  10. SALARY =  15000 
  11.  
  12. ID = 3 
  13. NAME = Teddy 
  14. ADDRESS = Norway 
  15. SALARY =  20000 
  16.  
  17. ID = 4 
  18. NAME = Mark 
  19. ADDRESS = Rich-Mond 
  20. SALARY =  65000 
  21.  
  22. Operation done successfully 

UPDATE 操作

下面的PHP代码显示了如何我们可以使用UPDATE语句来更新任何记录,然后获取并显示更新的记录,从COMPANY 表:

  1. <?php 
  2.    $host        = "host=127.0.0.1"
  3.    $port        = "port=5432"
  4.    $dbname      = "dbname=testdb"
  5.    $credentials = "user=postgres password=pass123"
  6.  
  7.    $db = pg_connect( "$host $port $dbname $credentials"  ); 
  8.    if(!$db){ 
  9.       echo "Error : Unable to open database\n"
  10.    } else { 
  11.       echo "Opened database successfully\n"
  12.    } 
  13.    $sql =<<<EOF 
  14.       UPDATE COMPANY set SALARY = 25000.00 where ID=1; 
  15. EOF; 
  16.    $ret = pg_query($db, $sql); 
  17.    if(!$ret){ 
  18.       echo pg_last_error($db); 
  19.       exit; 
  20.    } else { 
  21.       echo "Record updated successfully\n"
  22.    } 
  23.     
  24.    $sql =<<<EOF 
  25.       SELECT * from COMPANY; 
  26. EOF; 
  27.  
  28.    $ret = pg_query($db, $sql); 
  29.    if(!$ret){ 
  30.       echo pg_last_error($db); 
  31.       exit; 
  32.    }  
  33.    while($row = pg_fetch_row($ret)){ 
  34.       echo "ID = ". $row[0] . "\n"
  35.       echo "NAME = ". $row[1] ."\n"
  36.       echo "ADDRESS = ". $row[2] ."\n"
  37.       echo "SALARY =  ".$row[4] ."\n\n"
  38.    } 
  39.    echo "Operation done successfully\n"
  40.    pg_close($db); 
  41. ?> 

当上述程序执行时,它会产生以下结果:

  1. Opened database successfully 
  2. Record updated successfully 
  3. ID = 2 
  4. NAME = Allen 
  5. ADDRESS = 25 
  6. SALARY =  15000 
  7.  
  8. ID = 3 
  9. NAME = Teddy 
  10. ADDRESS = 23 
  11. SALARY =  20000 
  12.  
  13. ID = 4 
  14. NAME = Mark 
  15. ADDRESS = 25 
  16. SALARY =  65000 
  17.  
  18. ID = 1 
  19. NAME = Paul 
  20. ADDRESS = 32 
  21. SALARY =  25000 
  22.  
  23. Operation done successfully 

DELETE 操作

下面的PHP代码,表明我们如何能够使用DELETE语句删除任何记录,然后获取并显示COMPANY 表剩余的记录:

  1. <?php 
  2.    $host        = "host=127.0.0.1"
  3.    $port        = "port=5432"
  4.    $dbname      = "dbname=testdb"
  5.    $credentials = "user=postgres password=pass123"
  6.  
  7.    $db = pg_connect( "$host $port $dbname $credentials"  ); 
  8.    if(!$db){ 
  9.       echo "Error : Unable to open database\n"
  10.    } else { 
  11.       echo "Opened database successfully\n"
  12.    } 
  13.    $sql =<<<EOF 
  14.       DELETE from COMPANY where ID=2; 
  15. EOF; 
  16.    $ret = pg_query($db, $sql); 
  17.    if(!$ret){ 
  18.       echo pg_last_error($db); 
  19.       exit; 
  20.    } else { 
  21.       echo "Record deleted successfully\n"
  22.    } 
  23.     
  24.    $sql =<<<EOF 
  25.       SELECT * from COMPANY; 
  26. EOF; 
  27.  
  28.    $ret = pg_query($db, $sql); 
  29.    if(!$ret){ 
  30.       echo pg_last_error($db); 
  31.       exit; 
  32.    }  
  33.    while($row = pg_fetch_row($ret)){ 
  34.       echo "ID = ". $row[0] . "\n"
  35.       echo "NAME = ". $row[1] ."\n"
  36.       echo "ADDRESS = ". $row[2] ."\n"
  37.       echo "SALARY =  ".$row[4] ."\n\n"
  38.    } 
  39.    echo "Operation done successfully\n"
  40.    pg_close($db); 
  41. ?> 

当上述程序执行时,它会产生以下结果:

  1. Opened database successfully 
  2. Record deleted successfully 
  3. ID = 3 
  4. NAME = Teddy 
  5. ADDRESS = 23 
  6. SALARY =  20000 
  7.  
  8. ID = 4 
  9. NAME = Mark 
  10. ADDRESS = 25 
  11. SALARY =  65000 
  12.  
  13. ID = 1 
  14. NAME = Paul 
  15. ADDRESS = 32 
  16. SALARY =  25000 
  17.  
  18. Operation done successfully

原文链接:http://www.yiibai.com/html/postgresql/2013/080896.html

 

 

 

 

 

 

 

责任编辑:陈四芳 来源: yiibai.com
相关推荐

2014-01-02 13:22:01

PythonPostgreSQL

2014-01-02 14:04:39

PostgreSQLPerl

2014-01-02 15:30:56

PostgreSQLJava

2024-03-04 09:29:57

PostgreSQL数据库RDBMS

2014-01-02 10:46:35

PostgreSQLC++

2015-06-11 10:57:10

2022-06-26 07:18:17

数据库NodePostgreSQL

2010-03-26 09:30:42

Python连接Pos

2022-02-24 20:14:27

YAML云原生PostgreSQL

2009-09-03 11:42:32

2009-11-24 16:48:15

PHP mysqli

2010-05-27 10:10:00

连接MySQL数据库

2009-12-08 17:23:12

PHP PDO类

2009-11-30 17:54:56

PHP连接Sql数据库

2014-01-05 17:51:03

2023-12-14 13:29:00

2011-01-13 08:38:20

2009-11-26 10:39:58

PHP字符串连接

2014-01-02 16:06:03

PostgreSQL实用函数

2010-10-08 11:41:38

PHP连接MYSQL
点赞
收藏

51CTO技术栈公众号