Category:Perl

2008/04/15(Tue) 08:51 「うぉぉぉ!」
久々に「きちんと」夜に六時間眠れました。感激。
途中に四回位目が覚めたんですが、いつもみたいにそのまま眠れないって感じにならず再び眠れたといった感じ。
いやー。昼夜逆転少しは治ってきてるのかな、とうれしくなった今日この頃。

昨日ちょろちょろ書いたDB周りのモジュールだけど、DBIx::Simple;なんて素晴らしいモジュールがあったことが発覚。
全然知らなかったです…。

しかし、折角なので自分で作っちゃいます。
なんという車輪の再発明/(^o^)\
自己満足の為に、あげるだけあげておきますね。
※決してモジュール名は、某改ざんツールとは関係nry
DBI::Spoiler.pm

一応、ルーチン一覧も掲載。

# DB接続
init('エンジンとかDB名', 'username', 'password')

# クリテリア初期化
new_criteria()

# JOIN句追加
add_join('結合テーブル', '結合条件(ON)', '1で内部結合、省略(デフォルト)は外部結合')

# WHERE句追加(複数指定可能)
add_query(\[['対象カラム', '値', '演算子', 'デフォルトはAND、オプションつけるとOR']...])

# ORDER句追加(複数指定可能)
add_order_column(\[['対象カラム', 'デフォルトはASC、オプションつけるとDESC']...])

# VALUES値追加(INSERT文用)(複数指定可能)
add_values(\['値', '値', '値'...])

# SET値追加(UPDATE文用)(複数指定可能)
add_sets(\[['対象カラム', '値']...])

# LIMIT設定
set_limit(開始番号, 取得件数)

# クオート処理
set_quote()

# プレースホルダ設定
set_placeholder()

# SELECT文
do_select('テーブル名', 'データが存在しない場合無視するには1', \[[WHERE句]...])

# DELETE文
do_delete('テーブル名', \[[WHERE句]...])

# INSERT文(面倒なのでvalues分けはしていない)
do_insert('テーブル名', \['代入する値', '代入する値'...])

# UPDATE文
do_update('テーブル名'、\[[更新する値], [更新する値]...], \[[WHERE句], [WHERE句]...])

# 直SQL実行
do_excute_query('実行するクエリ', '帰り値を受け取らない場合は1')

# 行数カウント
do_count('テーブル名', \[[WHERE句], [WHERE句]...])
▽ ニュース
3D生活空間サービス「ai sp@ce」にKOTOKO起用
果てしなく無駄に豪華だなぁw
コメント[書いてくれると喜びます]:
2008/04/14(Mon) 01:15 「ただの記録帳」
記録がてらに。
symfonyとRoRっぽく書いてみたりしてます。
あとはadd_andを一気に追加できるようにとかしようかなーとか。

あ、因みにクオテーションがシングルとダブルの差は特にないです。
気分で入れ替えてただけ。
あとガンキャノンの型番がガンタンクになってるのはry
νガンダムのつづりが可笑しいのもry


#!perl

use strict;
use warnings;
#use CGI::Carp qw(fatalsToBrowser);
use Database;

my $database = new Database();

# DB接続
$database->init;

# すペーさー
print "----------------------------------------\n";

# 擬似SELECT文(1)
$database->new_criteria();
# (1)の条件句設定(複数に分けて設定可能)
#$database->add_and("unit_id", "1", "!=");
$database->add_and("unit_id", "6", "!=");
# 件数制限(先頭から4件)(undefは数値でもOK)
$database->set_limit(undef, 4);
# unit_name順にソート(後ろは1だとDESC、それ以外の場合はASCで処理)
$database->add_order_column("unit_name", 1);
# 結合も実現(undefで外部結合、1で内部結合。省略可)(AS文もOK)
$database->add_join("test1 as a", "unit_data.unit_id = a.id", undef);
$database->add_join("test2", "unit_data.unit_id = test2.id", undef);

# (1)で指定したクエリでSELECT文実行(引数はテーブル名、エラー文、exists判定)
my @nuko = $database->do_select("unit_data", "errrr", 1);
# (1)のデータ表示
map {
print "$_->{'unit_id'}, $_->{'unit_name'}, $_->{'unit_gif'}\n";
} @nuko;

# すペーさー
print "\n";

# (1)の結果を変数で受け取ることも可能(find :first)
my $nuko = $database->do_select("unit_data", "errrr", 1);
print "$nuko->{'unit_id'}, $nuko->{'unit_name'}, $nuko->{'unit_gif'}\n";

# (1)で実行したSQL文
print "\n";
print "Query : $database->{Sql}\n";

# すペーさー
print "----------------------------------------\n";

# 擬似DELETE文(2)
$database->new_criteria();
# (2)の条件句設定(複数に分けて設定可能)(INは未設定\(^o^)/)
$database->add_or("unit_id", "2", "=");
$database->add_or("unit_id", "3", "=");
$database->add_or("unit_id", "45", "=");
$database->add_or("unit_id", "48", "=");
# (2)で指定したクエリでDELETE文実行(引数はテーブル名)
$database->do_delete("unit_data");

# (2)で実行したSQL文
print "\n";
print "Query : $database->{Sql}\n";

# すペーさー
print "----------------------------------------\n";

# 擬似INSERT文(3)(面倒なのでvalues分けはしていない)
#$database->new_criteria();
#$database->do_insert(
#"unit_data",
#\['48', "UNIX_TIMESTAMP()", "hoge", "NOW()"]
#);

# (3)で実行したSQL文
#print "\n";
#print "Query : $database->{Sql}\n";

# すペーさー
#print "----------------------------------------\n";

# 擬似UPDATE文(4)
$database->new_criteria();
$database->add_and("unit_id", "100", "=");
# SETは複数指定可能
$database->add_sets(\[["unit_name", "Ball"], ["unit_gif", "RB-79.gif"]]);
$database->add_sets(\[['unit_id', '1']]);
# 実行時にSET文を一気に指定することも可能
$database->do_update("unit_data", \[['created_at', 'UNIX_TIMESTAMP()']]);

# (4)で実行したSQL文
print "\n";
print "Query : $database->{Sql}\n";

# すペーさー
print "----------------------------------------\n";

# 生クエリ(5)(do文なのでデータ取得は出来ないよ><)
$database->do_execute_query("SELECT * FROM unit_data where unit_id < 100");

# (5)で実行したSQL文
print "\n";
print "Query : $database->{Sql}\n";

# すペーさー
print "----------------------------------------\n";

# 行数カウント(6)
$database->new_criteria();
$database->add_and("unit_id", "4", ">");

my $count = $database->do_count("unit_data");

# カウント結果
print "$count\n";

# (6)で実行したSQL文
print "\n";
print "Query : $database->{Sql}\n";

# すペーさー
print "----------------------------------------\n";

exit;


実行結果:

----------------------------------------
93, Nieu Gundam, RX-79-3.gif
75, Gun Tank(Real), RX-75.gif
77, Gun Tank, RX-77.gif
78, First Gundam, RX-78-2.gif

93, Nieu Gundam, RX-79-3.gif

Query :
SELECT * FROM `unit_data`
LEFT JOIN test1 as a ON unit_data.unit_id = a.id
LEFT JOIN test2 ON unit_data.unit_id = test2.id
WHERE unit_id != '6' ORDER BY unit_name DESC LIMIT 0, 4
----------------------------------------

Query :
DELETE FROM `unit_data`
WHERE unit_id = '2' OR unit_id = '3' OR unit_id = '45' OR unit_id = '48'
----------------------------------------

Query :
UPDATE `unit_data`
SET unit_name = 'Ball', unit_gif = 'RB-79.gif', unit_id = '1',
created_at = UNIX_TIMESTAMP()
WHERE unit_id = '100'
----------------------------------------

Query :
SELECT * FROM unit_data where unit_id < 100
----------------------------------------
5

Query :
SELECT count(*) FROM `unit_data` WHERE unit_id > '4'
----------------------------------------


使用テーブル:

CREATE TABLE `test1` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`comment` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

CREATE TABLE `test2` (
`id` int(11) default NULL,
`name` varchar(255) default NULL,
`comment` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `unit_data` (
`unit_id` int(11) NOT NULL default '0',
`unit_name` varchar(255) default NULL,
`unit_gif` varchar(100) default NULL,
`created_at` datetime default NULL,
PRIMARY KEY (`unit_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
コメント[書いてくれると喜びます]:
2007/08/16(Thu) 20:49 「mod_perl試してみたい。」
0708141410.jpg
今日は怒涛の暇Rush!だったんで、今更ローカルサーバーにmod_perl(2)を導入してみようとやってみた。
…んだけど、インストールは出来るんだけど何故かApacheLoadModule perl_module modules/mod_perl.soとかやって起動させようとしてもエラー吐いてApacheが起動できなくなる。

エラーの原因は、mod_perlとかLWPをインストールする際に行うRunning make test

make test had returned bad status, won't install without force

って出てるからかなーと勝手に予測。
force無しでインストールできないって、どういうコトだろう;
でも、ppmのqueryでインストールされてるか確認されると一応表示されるんだよなー。
やっぱり、httpd.confの設定が原因?

エロい人、ご教授いただけるとめっちゃ助かるます><(ぇ
以下、関連性ありそうなモジュールのバージョンとか

CGI[2.91]
DBI[1.52]
libwww-perl[5.75]
mod_perl[2.0.3]


昨日から連日花火の音が外から聞こえてくる…けど、僕は家に引き篭もりちゃん。
PC熱の所為なのか、明らかに外の方が涼しい今日この頃。

なんか…ここ数日の目の酷使により本気で視力低下したかもorz
なんか色々ボヤけて見え出した。
そんなこんな。
▽ 拍手レス
>>LIVEALIVE!あの隠れた名作をプレイするとは…流石は大将!!byニコニコで調べなさい!とやんわり言ってみる春にゃん
いぇーい☆白石のはリミックスのやつですか。ちょっと前に聴いてたの忘れてたw
>>武蔵小山に「アライアンス幼稚園」ってのもあるよ、うほっいいドミナント・・・や ら な い か ? 仕事でトラック運転してる時に偶然見つけてニヤけてしまった、まさしく私はレイヴンbyあーくん
やらないwww
▽ ニュース
「 もってけ!セーラーふくRe−Mix001〜7 burning Remixers〜」が、8/14付オリコンシングルランキングで初登場3位(3.0万枚)を記録
キタァーッ!
子供の名前を「@」にしようとした中国の夫婦
@てw
コメント[書いてくれると喜びます]:
2006/08/17(Thu) 16:04 「ダルい。」
IEとかその他用火狐用
MSTの戦闘画面の開発を行っていたんだけど死ぬほど不評なんでやめました。
三日間PCの前で座って俺は一体なにやってたんだ・・・。

つか明日大分からこっちに友人が来るらしいんですが台風直撃するとかなんとか。
やばす(´・ω・`)

あ、そうそう。昨日バイトの上の人からモモもらったんですけどアレってどうやって食べればいいんだ。
▽ 拍手レス
>>∞MSTでした^^
あっこか。あそこ私居ないんだけどね。
>>>いつの間にか出勤日増加 バイトじゃよくある事よくある事(←週5がいつの間にか週6になった人) じゃねぇと納得できねぇよ!(カス(by誠
週5の時点で6も7も一緒じゃないすか。
>>冬コミは得意のコスプレ姿で来て下さいね♪
おk、じゃあジョニーブラボーで行くwwwww
>>それ男らしいぜ?
知ってるよ。
コメント[書いてくれると喜びます]:
2006/08/06(Sun) 03:23 「今日は…」
朝からずーーーーーっとPCの前に座ってました。
んで風呂に入る時になって漸く髪型がアトムになってたことに気付いた。
…明日は13~17スタジオ,17~22バイトなんですがなんでこんな時間まで起きてるんだorz
絶対アホですよねぇ。

さて、もうなんか遠い過去の記憶のように思えますが新しいMSTみたいなもん作りたいって言ってた件ですがマップのサンプル作りました。
勿論、途中経過なんで更に変更しまくりんぐの予定ですがレイアウト的にはそんな感じで行こうかと。

ついでに大学のステージ企画用のCGIも3時間位?で書き上げました。使われるかはまだわからんので適当です。


うにゃー、また作ったー。
▽ 拍手レス
>>幼稚園は仕事上よくいくのですが精神が疲れますよ。まあ幼女のパンツとか見えたりいろいろとご褒美がありますがね!
まぁ…子供の相手ほどダルいのは無いですしね、確かに。でもまぁ可愛いからいいじゃn(ぇ
>>おとこのこもかいらしいしね!救急車カモン!
(´;ω;`)ブワッ
>>バlバァワロタwwwwwwいい仕事場ですね^^^^^^^^
言うなwwww泣けるからwww
コメント[書いてくれると喜びます]:
2006/08/03(Thu) 16:06 「今更なんですが。」
まだイケにおけるプレイヤーのMSTプレイ数まとめ。

まだイケのみ:29名
まだイケ+他所1箇所:7名
まだイケ+他所2箇所:4名
まだイケ+他所3箇所:2名
まだイケ+他所4箇所:0名
まだイケ+他所4箇所:1名
まだイケ+他所4箇所以上:0名
総回答数:43(回答率:30%)

といった感じでした、アンケートにご協力いただいた皆様本当に有難うございました。
今日は本当に少しなのですが機体追加&違反者処理を行いました。
最近全然企画をやってないので、そろそろ何かしたいところですが…。

あとこのページのアンカー(>>なんたら)って表示がリンク貼られると可笑しくなってたのを漸く修正しました。
コメント[書いてくれると喜びます]:
Counter
counter
Comment Box
Site Search
New Topics
[418] うぉぉぉ!
[417] ただの記録帳
[283] mod_perl試してみたい。
[145] ダルい。
[133] 今日は…
[132] 今更なんですが。
Sub Menu
Home
Site Map
Profile
Archives
MST Setting
Link
Oekaki BBS
Contact Me
Name:angel
Mail:anilizawa@hotmail.com
MSN:anilizawa@hotmail.com
Mixi:2953512
Skype:ksk_angel
Twitter

あわせて読みたい

正当なCSSです!

なかのひと

フィードメーター - uncertain world

Read Me!