PostgreSQL���v���O�����ő��삷���FPostgreSQL�ō��Linux�f�[�^�x�[�X�i3�j

�O��܂ł�PostgreSQL�̗��j��C���X�g�[�����@�ɂ‚��Đ������Ă����B����́A���ۂ�PostgreSQL��Perl��C������g�����A�v���P�[�V�������J��������@�ɂ‚��ĉ������B

» 2000�N11��21�� 00��00�� ���J
[�@�ߗ���Y�C������Ѓf�W�^���f�U�C��]

����̂����ȓ��e

  • �T���v���f�[�^�x�[�X�̍쐬
  • Perl�ɂ��PostgreSQL�̑���
  • C����ɂ��PostgreSQL�̑���
  • PHP3�ɂ��PostgreSQL�̑���
  • PostgreSQL�̊J���‹�

�@PostgreSQL�͂��낢��Ȍ���Ƃ̃C���^�[�t�F�C�X�������Ă��܂����A����͑�\�I�ȂƂ���Ƃ��āAPerl��C����ł̃C���^�[�t�F�C�X��APostgreSQL�ƈ�ԑg�ݍ��킹�Ďg���邱�Ƃ������Ǝv����Apache�����PHP3���g���ẴA�v���P�[�V�����J���ɂ‚��Ă������������Ǝv���܂��B

1�D�T���v���f�[�^�x�[�X�̍쐬

�@��������ɂ��Ă��A�f�[�^�x�[�X���Ȃ���Θb�ɂȂ�܂���B�����ŁA����Љ��v���O�����Ŏg�����߂̃T���v���f�[�^�x�[�X���쐬���܂��傤�B�Ƃ肠�����A�����Ɠd�b�ԍ�����ѓd�q���[���A�h���X���Ǘ�����ȈՃA�h���X���Ƃ������Ƃɂ��܂��B

�@�܂��APostgreSQL�̃v�����v�g��create table���𔭍s���āA�e�[�u�����`���܂��B

postgres=> create table addrbook (name varchar(50),telno varchar(50), email varchar(50));
���܂�Ԃ��Ă��܂����A���ۂɂ�1�s�œ��͂��܂�

�@�e�[�u�����쐬�ł�����e�X�g�f�[�^����͂���̂ł����A�ꂩ��쐬����̂͑�ςȂ̂ŁA��ɗp�ӂ��Ă������f�[�^����R�s�[���邱�Ƃɂ��܂��B

�@�ȉ��̓��e�̃e�L�X�g�t�@�C����p�ӂ��Aaddrbook.txt�Ƃ����t�@�C�����ŕۑ����܂��B�X�y�[�X�̕�����TAB�ɂ��Ă��������B

R.Munechika     070-6682-****   [email protected]
H.Nishida       090-****-****   [email protected]
T.Miyahara      090-9999-9999   [email protected]

�@���̃t�@�C����copy�R�}���h���g���ăC���|�[�g���܂��B

postgres=> \copy addrbook from addrbook.txt
Successfully copied.

�@�R�s�[���ꂽ���e���m�F���܂��B

postgres=> select * from addrbook;
name       |telno        |email
-----------+-------------+----------------------------
R.Munechika|070-6682-****|[email protected]
H.Nishida  |090-****-****|[email protected]
T.Miyahara |090-9999-9999|[email protected]
(3 rows)

�@�ȏ�ŃT���v���f�[�^�x�[�X�̗p�ӂ��ł��܂����B

2�DPerl�ɂ��PostgreSQL�̑���

Perl�C���^�[�t�F�C�X�̓���

�@PostgreSQL��Perl����A�N�Z�X����ɂ́A�C���^�[�t�F�C�X�𓱓����Ȃ���΂Ȃ�܂���B

�@PostgreSQL�̃\�[�X��W�J�����f�B���N�g���ɂ���src/interfaces/perl5�f�B���N�g���Ɉړ����܂��i�����ł́A/usr/local/src/postgresql-6.5.3�Ƃ��܂��j�B

$ cd /usr/local/src/postgresql-6.5.3/src/interfaces/perl5

�@�����ŁAMakefile.PL��Perl������s���܂��B

$ perl Makefile.PL

�@�R���p�C�������s���܂��B

$ make

�@root�ɂȂ��ăC���X�g�[�����s���܂��B

$ su
# make install

Perl�̃v���O����(�\���p)

�@Perl��PostgreSQL�ɍ쐬�����f�[�^�x�[�X�e�[�u���̕\�����s���v���O�������쐬���Ă݂܂��B�ȉ��́A��قǍ쐬�����e�[�u���̓��e��\������ȒP�ȃv���O�����̃��X�g�ł��B

#!/usr/bin/perl
use Pg;
$dbname = "postgres";
$conn = Pg::connectdb("dbname=$dbname");
$res = $conn-> exec("select * from addrbook");
print "name telno email\n";
print "--------------------------------------\n";
while(@item = $res-> fetchrow) {
  print "@item[0] @item[1] @item[2]";
  print ("\n");
}
���X�g1�@�T���v���v���O����test1.pl

�@1�s�ڂ�Perl�̎��s�t�@�C���̐�΃p�X���w�肵�܂��Bwhich�Ȃǂ̃R�}���h�Œ��ׂāA�e���̊‹��ɍ��킹�Ă��������B3�s�ڂ��f�[�^�x�[�X���̎w��ŁA6�s�ڂ��f�[�^�x�[�X�ɑ΂��Ď��ۂ�SQL���𔭍s���镔���ł��B

�@8�`13�s�ڂ܂ł��\�����s�������ɂȂ�܂��B�܂�10�`13�s�ڂŃ��[�v���s���A1�s����fetch���s���ă��R�[�h���擾���Aprint�ŏo�͂��܂��B

Perl�̃v���O����(�lj��p)

�@���Ƀ��R�[�h�lj����s���T���v���v���O����test2.pl�ɂ‚��Đ������܂��B

#!/usr/bin/perl
use Pg;
$dbname = "postgres";
$conn = Pg::connectdb("dbname=$dbname");
$res = $conn-> exec("insert into addrbook values('K,Hamano','070-8888-8888','hamano\@email.net')");
if ( $res -> resultStatus == PGRES_COMMAND_OK ) {
  print "OK\n"
}
else {
  print "NG\n"
} 
���X�g2�@�T���v���v���O����test2.pl

�@5�s�ڂ܂ł�test1.pl�Ɠ����ł����A6�s�ڂ�SQL���̔��s�������قȂ�_�ɒ��ڂ��Ă��������B�܂��A�g@�h����͂���悤�ȏꍇ�́A�g\�h���g���ăG�X�P�[�v���邱�Ƃɒ��ӂ��Ă��������i���ۂ̃f�[�^�Ɂg\�h�͓o�^����܂���j�B

�@8�`13�s�ڂ̓G���[�������L�q���Ă��܂��B���������܂����s�ł��Ȃ������ꍇ�́AresultStatus�ɁgPGRES_COMMAND_OK�h�ȊO�̃X�e�[�^�X��߂��Ă��܂��B

�@test2.pl�����s���Ă���\���p�̃v���O����test1.pl�����s����ƁA���R�[�h�̒lj����s���Ă���̂�������܂��B

[postgres@micky postgres]$ ./test2.pl
OK
[postgres@micky postgres]$ ./test1.pl
name            telno           email
--------------------------------------
R.Munechika     070-6682-****   [email protected]
H.Nishida       090-****-****   [email protected]
T.Miyahara      090-9999-9999   [email protected]
K,Hamano        070-8888-8888   [email protected]

3�DC����ɂ��PostgreSQL�̑���

C����̃v���O����(�\���p)

�@���ɁAC������g����PostgreSQL�̃f�[�^�x�[�X�e�[�u���̒��g��\�����Ă݂邱�ƂƂ��܂��B

/* �w�b�_�t�@�C����荞�� */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include "postgres.h"
#include "libpq-fe.h"
/* main���� */
int main(int argc,char **argv)
{
    /* �ϐ���` */
    char dbName[255] = "postgres"; /* �f�[�^�x�[�X���̓n�[�h�R�[�f�B���O */
    char sql[255];
    int i;
    PGconn *con;
    PGresult *res;
    char *kou1,*kou2,*kou3;
    /* DB�Ƃ̐ڑ� */
    con = PQsetdb("","",NULL,NULL,dbName);
    if ( PQstatus(con) == CONNECTION_BAD ) { /* �ڑ������s�����Ƃ��̃G���[���� */
        fprintf(stderr,"Connection to database '%s' failed.\n",dbName);
        fprintf(stderr,"%s",PQerrorMessage(con));
        exit(1);
    }
    /* select���̔��s */
    sprintf(sql,"select * from addrbook");
    res = PQexec(con,sql);
    if (PQresultStatus(res) != PGRES_TUPLES_OK) { /* SQL�̎��s�Ɏ��s�����Ƃ��̃G���[���� */
        fprintf(stderr,"%s",PQerrorMessage(con));
        exit(1);
    }
    printf("name telno email\n");
    printf("--------------------------------------\n");
    for(i = 0; i < 3 ;i++) {
        kou1 = PQgetvalue(res,i,0);
        kou2 = PQgetvalue(res,i,1);
        kou3 = PQgetvalue(res,i,2);
        printf("%s %s %s\n",kou1,kou2,kou3);
    }
    PQclear(res);
}
���X�g3�@�T���v���v���O����test1.c

�@C����ŋL�q����ۂ́Apostgres.h��libpq-fe.h�̃C���N���[�h�����Y��Ȃ��B�܂��APQexec()�֐��͈ȉ��̂悤�ɑ�2������SQL���������Ď��s���܂��B

/* select���̔��s */
sprintf(sql,"select * from addrbook");
res = PQexec(con,sql);

�@PQgetvalue()�֐��̓f�[�^�x�[�X����l�����o�����̂ŁA��2�����Ɂu�s�v�A��3�����Ɂu��v���w�肵�܂��B�����āAPQgetvalue()�֐��̖߂�l��printf()�֐��Ő��`���ďo�͂��܂��B

kou1 = PQgetvalue(res,i,0);
kou2 = PQgetvalue(res,i,1);
kou3 = PQgetvalue(res,i,2);
printf("%s %s %s\n",kou1,kou2,kou3);

�@�R���p�C�����́APostgreSQL�̃w�b�_�t�@�C���ƃ��C�u�����t�@�C�������݂���f�B���N�g���ɖ����I�Ƀp�X���ʂ�悤�ɂ��܂��B

cc -o test1 test1.c -I$POSTGRES_HOME/include -L$POSTGRES_HOME/lib -lpq -lnsl -lcrypt

C����̃v���O����(�lj��p)

/* �w�b�_�t�@�C����荞�� */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include "postgres.h"
#include "libpq-fe.h"
/* main���� */
int main(int argc,char **argv)
{
    /* �ϐ���` */
    char dbName[255] = "postgres"; /* �f�[�^�x�[�X���̓n�[�h�R�[�f�B���O */
    char sql[255];
    int i;
    PGconn *con;
    PGresult *res;
/* DB�Ƃ̐ڑ� */
    con = PQsetdb("","",NULL,NULL,dbName);
    if ( PQstatus(con) == CONNECTION_BAD ) { /* �ڑ������s�����Ƃ��̃G���[���� */
        fprintf(stderr,"Connection to database '%s' failed.\n",dbName);
        fprintf(stderr,"%s",PQerrorMessage(con));
        exit(1);
    }
    /* insert���̔��s */
    sprintf(sql,"insert into addrbook values ('K,Hamano','070-8888-8888','[email protected]')");
    res = PQexec(con,sql);
    if (PQresultStatus(res) != PGRES_COMMAND_OK) { /* SQL�̎��s�Ɏ��s�����Ƃ��̃G���[���� */
        fprintf(stderr,"%s",PQerrorMessage(con));
        exit(1);
    }
    PQclear(res);
} 
���X�g4�@�T���v���v���O����test2.c

�@�\������v���O�����̕ύX����Perl�̃v���O�����̂Ƃ��Ɠ��l�ASQL���𔭍s����Ƃ����SQL������̖߂�l�𔻒f����Ƃ���ł��BC����ł�Perl�Ɠ����悤�ȏ������s���΂悢�Ƃ������Ƃ������ł���ł��傤�B

4�DPHP3�ɂ��PostgreSQL�̑���

�@PHP3����PostgreSQL�ɃA�N�Z�X����ɂ́APHP3�𓱓����܂��B�����ł�DSO�ł�Apache���g�����̂Ƃ��Đ������܂��B�Ȍ�̑����root�ō�Ƃ��܂��B

Apache�̃C���X�g�[��

# cd /usr/local/src
# tar xfz apache_1.3.12.tar.gz
# cd apache_1.3.12
# ./configure --enable-module=so
# make
# make install

PHP�̃C���X�g�[��

# cd /usr/local/src
# tar xfz php-3.0.15-i18n-ja.tar.gz
# cd php-3.0.15-i18n-ja
# ./configure --with-pgsql --with-apache=../apache_1.3.12 --enable-track-vars --with-apxs=/usr/local/apache/bin/apxs --enable-i18n --enable-mbregex
# make
# make install

httpd.conf�̕ҏW

�@Apache�̕W���̐ݒ�ł�PHP3�����s�ł��Ȃ��悤�ɂȂ��Ă��܂��̂ŁA�ݒ�t�@�C���ihttpd.conf�j��ҏW���܂��B

#AddType application/x-httpd-php3 .php3
#AddType application/x-httpd-php3-source .phps

�Ƃ������̃R�����g�s�́u#�v���폜���āA�ݒ��L�������܂��Bhttpd.conf��ҏW������A�K��Apache���ċN�����Ă��������B

PHP3�̃v���O����(�\���p)

�@PHP3�̃v���O������Perl��C����ł̃v���O�����Ƃ̑���_�́APHP3�̓T�[�o�T�C�h�Ŏ��s���A�N���C�A���g�iWeb�u���E�U�j�ŕ\������Ƃ����Ƃ���ɂ���܂��B

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-JP">
<title>
�ȈՃA�h���X��
</title>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<h1>�ȈՃA�h���X��</h1>
<br>
<hr>
<br>
<?
/* Global variables. */
$dbname = "postgres";           /* DB name of PostgreSQL. */
$tbname = "addrbook";           /* table name of PostgreSQL. */
        /* �f�[�^�x�[�X�Ƃ̐ڑ� */
    $conn = pg_Connect("localhost", "5432", "", "", $dbname);
    if (!$conn){
        echo "�f�[�^�x�[�X�̐ڑ��ŃG���[���������܂���<BR>\n";
        exit;
    }
        /* SQL���̔��s */
    $sql = "select * from $tbname";
    $result = pg_Exec($conn, $sql);
    if (!$result) {
        echo "�����ŃG���[���������܂���<BR>\n";
        exit;
    }
    $num = pg_numrows($result);
    echo "<TABLE BORDER=\"1\">\n";
    echo "<TR><TD>���O</TD><TD>�d�b�ԍ�</TD><TD>���[��</TD></TR>\n";
    for ($i = 0; $i < $num; $i++) {
        $row = pg_fetch_row($result, $i);
                echo "<TR><TD>" . $row[0] . "</TD><TD>" . $row[1] . "</TD><TD>" . $row[2] . "</TD></TR>\n";
    }
    echo "</TABLE>\n";
?>
</BODY>
</HTML> 
���X�g5�@�T���v���v���O����test1.php3�B�v���O�����̕����R�[�h�Z�b�g��EUC�ɂ��Ă�������

�@PHP3�̕��@��C����ɂ悭���Ă���̂ŁAHTML�^�O�������ΐ�قǂ�C����̃T���v���v���O�����ƂقƂ�Ǖς��Ȃ����Ƃɂ��C�t���ɂȂ�ł��傤�B

PHP3�̃v���O����(�lj��p)

�@����PHP3�ł̃��R�[�h�lj��v���O�����̗�������܂��BHTML�t�H�[���Ńf�[�^����͂��A����HTML�t�H�[������PHP3�v���O���������s���邱�Ƃɂ��o�^���s���܂��B���X�g6��PHP3�v���O�������Ăяo��HTML�A���X�g7��PHP3�v���O�����ł��B

<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-JP">
<title>
�ȈՃA�h���X���i�lj��j
</title>
</head>
<body bgcolor="FFFFFF">
<TABLE align="center" BORDER="0">
<TR><TD WIDTH="600">
<table align="center" border="5">
<TR>
<TD align="center">
<FONT SIZE="5"><B>�ȈՃA�h���X���i�lj��j<BR>
</B></FONT>
</TD>
</table>
<br>
�o�^����������
<BR><BR>
</TD></TR>
</TABLE>
<BR>
<P align="right">
<hr>
<form method="post" action="./test2.php3" NAME="myForm">
<TABLE ALIGN="CENTER" BORDER="1" WIDTH="600">
<input type="hidden" name="ename">
��(*)���‚��Ă��鍀�ڂ́A�K�����͂��Ă��������B<BR>
<TR>
<TD WIDTH="100" BGCOLOR="#CCCCFF">���O (*)</TD><TD><input type="text" name="name" size="60" maxlength="80"></TD>
</TR>
<TR>
<TD WIDTH="100" BGCOLOR="#CCCCFF">�d�b�ԍ� (*)</TD><TD><input type="text" name="telno" size="60" maxlength="80"></TD>
</TR>
<TR>
<TD WIDTH="100" BGCOLOR="#CCCCFF">���[�� (*)</TD><TD><input type="text" name="email" size="60" maxlength="120"></TD>
</TR>
</TABLE>
<center>
<input type="submit" value="�o�^"><input type="reset" value="���Z�b�g">
</CENTER>
</form>
</body>
</html> 
���X�g6�@�T���v���v���O�����pHTML�itest2.html�j�BHTML�t�H�[���ɓ��͂����f�[�^�́A�‹��ϐ��Ƃ���PHP3�Ɉ����p����ă��R�[�h�̒lj����s���܂�
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-JP">
<title>
�ȈՃA�h���X���i�lj��j
</title>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<FORM ACTION="test2.php3" METHOD=POST>
<H2>
�ȈՃA�h���X���i�lj��j<BR>
</H2>
<?
/* Global variables. */
$dbname = "postgres";           /* DB name of PostgreSQL. */
$tbname = "addrbook";           /* table name of PostgreSQL. */
        /* �f�[�^�x�[�X�Ƃ̐ڑ� */
    $conn = pg_Connect("localhost", "5432", "", "", $dbname);
    if (!$conn){
        echo "�f�[�^�x�[�X�̐ڑ��ŃG���[���������܂���\n";
        exit;
    }
    $sql = "insert into $tbname values ('$name','$telno','$email')";
    $result = pg_Exec($conn, $sql);
    if (!$result) {
        echo "�f�[�^�x�[�X�ւ̓o�^�ŃG���[���������܂���<BR>\n";
        exit;
    }
    echo "�o�^���܂���<BR>\n";
?>
</BODY>
</HTML> 
���X�g7�@�T���v���v���O����test2.php3

�@�����C����̗�Ɠ������A���܂�ς�肪�Ȃ����Ƃ���������ɂȂ�ł��傤�B

5�DPostgreSQL�̊J���‹�

�@��1��̌��e�ɏ������Ƃ���APostgreSQL�ɂ̓��v���P�[�V��������������Ă��Ȃ����߂ɁA�‚��ŋ߂܂ł�PostgreSQL���g�p���ăV�X�e���C���e�O���[�V�������s���̂͂��낢��Ƌ�J���‚��܂Ƃ��Ă��܂����B

�@�Ƃ��낪�A���v���P�[�V�������������邽�߂̎d�g�݂��ŋ߂ɂȂ��Č���Ă��܂����B1�‚��A�M�҂̏������銔����Ѓf�W�^���f�U�C����2000�N11�����o�ׂ��J�n����uFCR for PostgreSQL�v�ł��B���̃\�t�g��2�‚̃T�[�o�Ԃ�Fast Connector Server��u���āAinsert���Ȃǂ̔��s���󂯂Ă���1�‚̃T�[�o�Ƀg���K���g���ă��v���P�[�V�������s���d�g�݂ɂȂ��Ă��܂��B�]���ł��_�E�����[�h�ł��܂��̂ŁA��x�������ɂȂ��Ă͂������ł��傤�B

�@�܂��A�������@�Ȃǂɂ‚��Ă͉��L��URL���Q�l�ɂȂ�܂��B

�@����1�‚̎����́A������ЃO�b�f�C�̍א삳��GPL2�Ō��J����Ă���uUsogres�v�ł��B

�@Usogres��PostgreSQL�̃v���L�V�Ƃ��ċ@�\����T�[�o�\�t�g�ł��BUsogres�Ŏ��s���ꂽSQL�̏�����������PostgreSQL�T�[�o�[�ɑ�����̂ŁA���ʓI�Ƀ��A���^�C���Ńo�b�N�A�b�v�����Ƃ������̂ł��B�������A�����I�ȈӖ��ł̃��v���P�[�V�����͂܂���������Ă��܂���B��҂̍א쎁�ɂ��ƁA����{�i�I�ȃ��v���P�[�V�����@�\����������Ƃ̂��ƂȂ̂ő傢�Ɋ��҂����Ă�\�t�g�ł��B

�@����܂�3��ɂ킽��PostgreSQL�̐������s���Ă��܂����BPostgreSQL�̊T�v�⓱�����@�A�A�v���P�[�V�����J���ɂ‚��āA�����悻�����ł����Ǝv���܂��B���̘A�ڂ��F����̂��d���ɐ�������邱�Ƃ�����Ă�݂܂���B

�M�ҏЉ�

������Ѓf�W�^���f�U�C��

Project BLUE

�@�ߗ���Y�i�n���h�����F�܂��p�p�j


Copyright © ITmedia, Inc. All Rights Reserved.

'; if( !this.isSubscription ) { this.insertTarget = document.querySelector('#cmsBody .subscription') || document.querySelector('#cmsBody .inner'); } }; BodyAdIMSWithCCE.prototype = Object.create(BodyAdContent.prototype); BodyAdIMSWithCCE.prototype.activate = function () { refreshGam('InArtSpecialLink'); } // global reference window.itm = itm; //entry point BodyAdEventBase.polyfill(); const bodyAdManager = BodyAdManager.getInstance(); bodyAdManager.addEventListener(BodyAdManager.EVENTS.READY, function (ev) { bodyAdManager.loadAdvertise(); }); bodyAdManager.init(); })();
�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B