这里又说Windows下的postgresql,只是个人觉得在windows下使用postgresql的人特别少,借此补充点postgres的知识供大家搜索。
安装上postgresql数据库后,我们也安装上Apache和PHP以及Perl来做测试。
我的环境配置如下:
个人比较SQLite以及PostGreSQL以及MySQL而言,MySQL速度最快,比较易用,平台移植性好;PostGreSQL功能强大,具强大的稳定性;而SQLite速度没有MySQL那么快,但是非常易用,不需要特别的配置以及复杂启动机制。
我的环境配置如下:
D:\>httpd -v首先打开php的配置文件,我的php.ini文件在c:\windows\目录下面,这个位置与我系统环境和初始安装有关;找到
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)
;extension=php_pgsql.dll将前面的";"号去掉,即打开pgsql库函数的支持,重启一下apache:
httpd -k restart然后写一段php的代码测试一下数据库:
<?php见到"ok"字样,说明我的php连接postgresql成功,接下来是安装perl的DBI模块:
$conn = pg_connect("host=localhost port=5432 dbname=test user=root");
if (!$conn)
{
die("An error occured.");
}
else
{
echo "ok";
}
?>
ppm search DBI如果已经安装了DBI模块,建议升级一下,这里根据你的postgresql版本而来,我的是目前最新的postgresql8.26,所用的DBD:Pg模块版本必须为1.49才能支持:
ppm upgrade DBI如果您不是使用的ActiveState的Perl或者没有ppm包的安装环境,请直接去cpan上下载源码,直接像类Unix那样进行编译:
perl Makefile.PL其实CPAN.pm模块给我们提供一个丰富的平台,在环境允许的情况下,直接:
nmake && nmake install
perl -MCPAN -e "install DBI"DBI模块安装和升级完毕后,我们安装DBD::Pg模块:
D:\>ppm search DBD-P有两个模块,第一个是一位日本程序员写的,不过功能没有第一个强大,且不能Load大数据,第一个版本太低,使用目前版本的postgresql会出现崩溃现象,弹出一个"Perl Command Line Interpreter 遇到问题需要关闭 "的框框,这里提供一下zhanying编译的ppm方式安装的DBD::Pg模块:
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
DBD-Pg-1.49.zip解压之后,直接运行ppm安装:
ppm install DBD-Pg.ppd这样DBD::Pg模块安装完毕,写一段Perl脚本测试一下:
#!/usr/bin/perl看到"ok"字样说明DBI模块连接数据库成功。
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;
}
个人比较SQLite以及PostGreSQL以及MySQL而言,MySQL速度最快,比较易用,平台移植性好;PostGreSQL功能强大,具强大的稳定性;而SQLite速度没有MySQL那么快,但是非常易用,不需要特别的配置以及复杂启动机制。