SQL文による jsql.pl の応用 (osql.cgi)
■ 目次
■ 概要
jsql.pl は SQL文を引数で受け取り、その結果を配列で返す Perl
のライブラリーです。
下記は サンプルCGIの osql.cgi からSQL文を渡し jsql.pl で mydb.kakaku 内のkakauが、300以上のものを検索し、その結果を配列で
osql.cgi に返す一連のプロセスを表しています。
osql.cgi のセットアップは、インストールガイドのデータベースの構築をご覧下さい。
|
SQL文を渡す→ |
|
mydb.kakaku
|
||||||||||||||||||||||||
|
←結果を返す。 |
上記の実行結果を実際に、ご覧になるには、こちらです。
SQL文の where kakaku >300 を where kakaku >400 に変えてると実行すると結果はこちらなります。
osql.cgiのソースをご覧になるにはこちらです。
■ 簡単なCGIの例
| #!/usr/local/bin/perl require 'jsql.pl'; # ライブラリーを宣言します。 $ENV{JSQL_PORT} = 'jsql'; # DBポートを宣言します。 $ENV{JSQL_USER} = 'ris'; # SQL文の実行アカウント @list = &jsql'exec("select * from mydb.kakaku where kakaku>300"); # SQLの実行 print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<BODY>\n"; foreach (@list){ # 実行結果全て表示する print "$_<BR>"; } print "</table>\n"; print "</BODY>\n"; print "</HTML>\n"; __END__ |
上記を実行すると戻り値として、配列 @listに以下の値が代入されます。(\tはタブ)
@list = ("100003\tメロン\t1200","100005\t苺\t500","100006\tぶどう\t345")
$ENV{JSQL_USER} を省略するとゲストアカウントで実行されます。
また、$ENV{JSQL_USER} に sa を指定することはできません。
■ 使えるSQL文 説明書作成中 ...
SELECT [ DISTINCT ] * | 項目1,項目2,項目3 .... FROM [db_name.]tbl_name [ WHERE .... ]
SELECT 項目 [ AS [日本語項目名] ] FROM [db_name.]tbl_name ORDER BY 項目1,項目2 [ DESC ]
INSERT INTO [db_name.]tbl_name ( * | 項目1,項目2,項目3 .... ) VALUES (値1,値2,値3 ....)
INSERT INTO [db_name.]tbl_name ( * | 項目1,項目2,項目3 .... ) SELECT .......
UPDATE [ FROM ] [db_name.]tbl_name SET 項目1=値1, 項目2=値2, 項目3 = 値3 .... [ WHERE .... ]
DELETE [ FROM ] [db_name.]tbl_name [ WHERE .... ]
WHERE 項目 = '値' AND ( 項目 >= 値 OR 項目 like "%値%" OR 項目 IS NULL )
Copyright (C) RIS
http://www.nlwww.com/jp/ris/osql01.htm
research@nlwww.com