5、PHP程序开发

5.1、连接数据库

  1. <?php
  2. $host="172.16.0.29";
  3. $port="15432";
  4. $dbname="postgres";
  5. $user="tbase" ;
  6. $password="";
  7. //连接数据库
  8. $conn=@pg_connect("host=$host port=$port dbname=$dbname user=$user password=$password");
  9. if (!$conn){
  10. $error_msg=@pg_errormessage($conn);
  11. echo "连接数据库出错,详情:".$error_msg."\n<BR>"; ;
  12. exit;
  13. }else{
  14. echo "连接数据库成功"."\n<BR>";
  15. }
  16. //关闭连接
  17. pg_close($conn);
  18. ?>

执行

  1. [root@VM_0_47_centos test]# curl http://127.0.0.1:8080/dbsta/test/conn.php
  2. 连接数据库成功

5.2、创建数据表

  1. <?php
  2. $host="172.16.0.29";
  3. $port="15432";
  4. $dbname="postgres";
  5. $user="tbase" ;
  6. $password="";
  7. //连接数据库
  8. $conn=@pg_connect("host=$host port=$port dbname=$dbname user=$user password=$password");
  9. if (!$conn){
  10. $error_msg=@pg_errormessage($conn);
  11. echo "连接数据库出错,详情:".$error_msg."\n"; ;
  12. exit;
  13. }else{
  14. echo "连接数据库成功"."\n";
  15. }
  16. //建立数据表
  17. $sql="create table public.tbase(id integer,nickname varchar(100)) distribute by shard(id) to group default_group;";
  18. $result = @pg_exec($conn,$sql) ;
  19. if (!$result){
  20. $error_msg=@pg_errormessage($conn);
  21. echo "创建数据表出错,详情:".$error_msg."\n"; ;
  22. exit;
  23. }else{
  24. echo "创建数据表成功"."\n";
  25. }
  26. //关闭连接
  27. pg_close($conn);
  28. ?>

执行

  1. [root@VM_0_47_centos test]# curl http://127.0.0.1:8080/dbsta/test/createtable.php
  2. 连接数据库成功
  3. 创建数据表成功

5.3、插入数据

  1. <?php
  2. $host="172.16.0.29";
  3. $port="15432";
  4. $dbname="postgres";
  5. $user="tbase" ;
  6. $password="";
  7. //连接数据库
  8. $conn=@pg_connect("host=$host port=$port dbname=$dbname user=$user password=$password");
  9. if (!$conn){
  10. $error_msg=@pg_errormessage($conn);
  11. echo "连接数据库出错,详情:".$error_msg."\n"; ;
  12. exit;
  13. }else{
  14. echo "连接数据库成功"."\n";
  15. }
  16. //插入数据
  17. $sql="insert into public.tbase values(1,'tbase'),(2,'pgxz');";
  18. $result = @pg_exec($conn,$sql) ;
  19. if (!$result){
  20. $error_msg=@pg_errormessage($conn);
  21. echo "插入数据出错,详情:".$error_msg."\n";
  22. exit;
  23. }else{
  24. echo "插入数据成功"."\n";
  25. }
  26. //关闭连接
  27. pg_close($conn);
  28. ?>

执行

  1. [tbase@VM_0_47_centos test]$ curl http://127.0.0.1:8080/dbsta/test/insert.php
  2. 连接数据库成功
  3. 插入数据成功

5.4、查询数据

  1. <?php
  2. $host="172.16.0.29";
  3. $port="15432";
  4. $dbname="postgres";
  5. $user="tbase" ;
  6. $password="";
  7. //连接数据库
  8. $conn=@pg_connect("host=$host port=$port dbname=$dbname user=$user password=$password");
  9. if (!$conn){
  10. $error_msg=@pg_errormessage($conn);
  11. echo "连接数据库出错,详情:".$error_msg."\n"; ;
  12. exit;
  13. }else{
  14. echo "连接数据库成功"."\n";
  15. }
  16. //查询数据
  17. $sql="select id,nickname from public.tbase";
  18. $result = @pg_exec($conn,$sql) ;
  19. if (!$result){
  20. $error_msg=@pg_errormessage($conn);
  21. echo "查询数据出错,详情:".$error_msg."\n";
  22. exit;
  23. }else{
  24. echo "插入数据成功"."\n";
  25. }
  26. $record_num = pg_numrows($result);
  27. echo "返回记录数".$record_num."\n";
  28. $rec=pg_fetch_all($result);
  29. for($i=0;$i<$record_num;$i++){
  30. echo "记录数#".strval($i+1)."\n";
  31. echo "id:".$rec[$i]["id"]."\n";
  32. echo "nickname:".$rec[$i]["nickname"]."\n\n";
  33. }
  34. //关闭连接
  35. pg_close($conn);
  36. ?>

调用方法

  1. [root@VM_0_47_centos ~]# curl http://127.0.0.1:8080/dbsta/test/select.php
  2. 连接数据库成功
  3. 插入数据成功
  4. 返回记录数2
  5. 记录数#1
  6. id1
  7. nicknametbase
  8. 记录数#2
  9. id2
  10. nicknamepgxz

5.5、流数据copy 入表

  1. <?php
  2. $host="172.16.0.29";
  3. $port="15432";
  4. $dbname="postgres";
  5. $user="tbase" ;
  6. $password="";
  7. //连接数据库
  8. $conn=@pg_connect("host=$host port=$port dbname=$dbname user=$user password=$password");
  9. if (!$conn){
  10. $error_msg=@pg_errormessage($conn);
  11. echo "连接数据库出错,详情:".$error_msg."\n"; ;
  12. exit;
  13. }else{
  14. echo "连接数据库成功"."\n";
  15. }
  16. $row=ARRAY("1,TBase","2,pgxz");
  17. $flag=pg_copy_from($conn,"public.tbase",$row,",");
  18. if (!$flag){
  19. $error_msg=@pg_errormessage($conn);
  20. echo "copy出错,详情:".$error_msg."\n";
  21. }else{
  22. echo "copy成功"."\n";
  23. }
  24. //关闭连接
  25. pg_close($conn);
  26. ?>

调用方法

  1. curl http://127.0.0.1/dbsta/cron/php_copy_from.php
  2. 连接数据库成功
  3. copy成功

5.6、copy to导出数据到一个数组中

  1. <?php
  2. $host="172.16.0.29";
  3. $port="15432";
  4. $dbname="postgres";
  5. $user="tbase" ;
  6. $password="";
  7. //连接数据库
  8. $conn=@pg_connect("host=$host port=$port dbname=$dbname user=$user password=$password");
  9. if (!$conn){
  10. $error_msg=@pg_errormessage($conn);
  11. echo "连接数据库出错,详情:".$error_msg."\n"; ;
  12. exit;
  13. }else{
  14. echo "连接数据库成功"."\n";
  15. }
  16. $row=pg_copy_to($conn,"public.tbase",",");
  17. if (!$row){
  18. $error_msg=@pg_errormessage($conn);
  19. echo "copy出错,详情:".$error_msg."\n";
  20. }else{
  21. print_r($row);
  22. }
  23. //关闭连接
  24. pg_close($conn);
  25. ?>

调用方法

  1. curl http://127.0.0.1/dbsta/cron/php_copy_to.php
  2. 连接数据库成功
  3. Array
  4. (
  5. [0] => 1,TBase
  6. [1] => 2,pgxz
  7. )