Windows下对postgresql数据库接口进行编程

这里又说Windows下的postgresql,只是个人觉得在windows下使用postgresql的人特别少,借此补充点postgres的知识供大家搜索。

安装上postgresql数据库后,我们也安装上Apache和PHP以及Perl来做测试。
我的环境配置如下:
D:\>httpd -v
Server version: Apache/2.2.4 (Win32)
Server built:   Jan  9 2007 23:17:20

D:\>pg_ctl.exe --version
pg_ctl (PostgreSQL) 8.2.5

D:\>php --version
PHP 5.2.1 (cli) (built: Feb  7 2007 23:11:26)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

D:\>perl -v

This is perl, v5.8.8 built for MSWin32-x86-multi-thread
(with 50 registered patches, see perl -V for more detail)
首先打开php的配置文件,我的php.ini文件在c:\windows\目录下面,这个位置与我系统环境和初始安装有关;找到
;extension=php_pgsql.dll
将前面的";"号去掉,即打开pgsql库函数的支持,重启一下apache:
httpd -k restart
然后写一段php的代码测试一下数据库:
<?php
$conn = pg_connect("host=localhost port=5432 dbname=test user=root");
if (!$conn)
{
    die("An error occured.");
}
else
{
    echo "ok";
}
?>
见到"ok"字样,说明我的php连接postgresql成功,接下来是安装perl的DBI模块:
ppm search DBI
如果已经安装了DBI模块,建议升级一下,这里根据你的postgresql版本而来,我的是目前最新的postgresql8.26,所用的DBD:Pg模块版本必须为1.49才能支持:
ppm upgrade DBI
如果您不是使用的ActiveState的Perl或者没有ppm包的安装环境,请直接去cpan上下载源码,直接像类Unix那样进行编译:
perl Makefile.PL
nmake && nmake install
其实CPAN.pm模块给我们提供一个丰富的平台,在环境允许的情况下,直接:
perl -MCPAN -e "install DBI"
DBI模块安装和升级完毕后,我们安装DBD::Pg模块:
D:\>ppm search DBD-P
Downloading ActiveState Package Repository packlist...not modified
1: DBD-Pg
   PostgreSQL database driver for the DBI module
   Version: 1.45
   Repo: theoryx5.uwinnipeg.ca

2: DBD-PgPP
   Pure Perl PostgreSQL driver for the DBI
   Version: 0.05
   Repo: ActiveState Package Repository
有两个模块,第一个是一位日本程序员写的,不过功能没有第一个强大,且不能Load大数据,第一个版本太低,使用目前版本的postgresql会出现崩溃现象,弹出一个"Perl Command Line Interpreter 遇到问题需要关闭……"的框框,这里提供一下zhanying编译的ppm方式安装的DBD::Pg模块:
DBD-Pg-1.49.zip
解压之后,直接运行ppm安装:
ppm install DBD-Pg.ppd
这样DBD::Pg模块安装完毕,写一段Perl脚本测试一下:
#!/usr/bin/perl

use strict;
use warnings;

use lib 'F:/usr/site/lib';
use DBI;

my $dbh = DBI->connect("dbi:Pg:dbname=test", "test", "");
if (!$dbh)
{
    die "fail!\n";
}
else
{
    print "ok";
    exit;
}
看到"ok"字样说明DBI模块连接数据库成功。

个人比较SQLite以及PostGreSQL以及MySQL而言,MySQL速度最快,比较易用,平台移植性好;PostGreSQL功能强大,具强大的稳定性;而SQLite速度没有MySQL那么快,但是非常易用,不需要特别的配置以及复杂启动机制。


Monthly Archives

Pages

Powered by Movable Type 7.7.2

About this Entry

This page contains a single entry by Cnangel published on January 5, 2008 11:33 PM.

在Windows下将Postgresql安装成Windows服务 was the previous entry in this blog.

超文本传输协议HTTP/1.1解释 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.