基于PostgreSQL+Postgis的空间数据库的实现(结合PHP)(3)

来源:互联网 发布:ubuntu挂载硬盘到home 编辑:程序博客网 时间:2024/05/22 05:02

PHP关于PostgreSQL的相关设置都弄好以后,就可以在PHP中直接操作数据库了。下面的一段代码是我将台风数据以点状数据全部插入到数据库中,其中包含:

  • 数据库连接
  • 文件打开并读取
  • 消除字符串中多余的空格
  • 执行sql查询
上述过程在代码中会以注释出现:

<?php//phpinfo();//连接数据库$conn = pg_connect("host=localhost port=5432 dbname=postgis user=postgres password=password");if ($conn) {print "OK! Has connected" . "<br>";} else {print "Error! Connect failure" . "<br>";}//文件打开$file = fopen("tydata2010.dat", "r") or exit("Unable to open file!");if($file){$arr_count = 1;while(!feof($file)){$str = trim(fgets($file));//去掉多余空格$str = preg_replace('/\s(?=\s)/', '', $str);//将字符串打散成数组$result = explode(" ", $str);echo print_r($result)."<br/>";//PostgreSQL中的插入语句为:insert into 表名 values(1,19631,'1963-04-13',40,'POINT(143.1 32.4)');$sql_insert_str="INSERT INTO typhoon VALUES(".$arr_count.",".$result[0].",'".$result[1]."-".$result[2]."-".$result[3]."',".$result[7].",'POINT(".$result[6]." ".$result[5].")');";//执行SQL插入$query_result = pg_query($conn,$sql_insert_str);if(!$query_result){echo "Query Failed!<br/>";}//echo $sql_insert_str."<br/>";$arr_count = $arr_count + 1;}echo "The total count is ".$arr_count;}else{echo "No data!";}fclose($file);?>

结合PHP对PostgreSQL的操作手册,貌似不需要关闭数据库连接,pg_close()并不很需要,因为非持久连接在本脚本执行结束后会自动关闭。


原创粉丝点击