[画像:[LinuxFocus-icon]]
遍匈 | 嫋泣仇夕 | 沫哈 | 朴沫

仟療 | 狛吏豚侵 | 全俊 | 購噐LF
This document is available in: English Castellano ChineseGB Deutsch Francais Nederlands Portugues Russian Turkce Arabic

Georges Tarbouriech
by Georges Tarbouriech
<georges.t(at)linuxfocus.org>

購噐恬宀:

Georges枠伏聞喘Unix謹定?麿浪散喘徭喇罷周圭宛栖盾畳廨匍糟囃坪議諒籾。


朕村:

MySQL & Perl, 宴旋岻栽

[画像:MySQL and Perl]

姜勣:

MySQL才Perl貴伏厮嗤屢輝海扮寂?勝砿"扮賓"音唯延晒彭?麿断挽隼瓜鴻刑聞喘。云猟網胎泌採繍曾嶽垢醤潤栽壓匯軟哘喘噐Ineternet式蕉囃利貧。猟嶄議箭徨園亟噐Unix狼由?輝隼万揖劔辛參哘喘噐凪万鴻刑聞喘議狼由嶄。
云猟斤宸斤怏栽議哘喘恬嗤尫網胎?網胎凪叟喘來?堀業?辛真來?芦畠來吉。
云猟旺音頁匯鐙MYSQL賜Perl議縮殻?匆音頁匯鐙斤MYSQL賜Perl議得胎。
厘断繍心欺泌採潤栽聞喘MySQL嚥Perl?音勣梨芝:"there is more than one way to do it"。



What about this nice pair ?

MySQL頁匯嶽購狼侏方象垂狼由(RDBMS),凪麼匈葎http://www.mysql.com/。 万喇GNU GPL窟下旺工窒継聞喘?萩廣吭堋響井幡蕗苧。 万辛參壓俯謹峠岬貧垢恬?屡恬捲暦匂揖扮嗽頁人薩極。茅MySQL岻翌珊嗤匯乂 凪万議徭喇罷周來嵎議RDBMS,壓宸戦音恬販採曳熟?云猟叙網胎MYSQL。厘断匆音繍凪嚥椎乂寄侏斌匍方象垂崧 Informix,Oracle,Sybase吉恬曳?嗤怎校尖喇屢佚MySQL頁Internet貧聞喘恷鴻刑議方象垂狼由岻匯。 壓宸鐙猟嫗戦厘断聞喘議MySQL井云頁3.23.36。孖壓議糧協窟佩井云頁3.23.46?遇逗逗吉棋議4.0井 挽壓霞編岻嶄。繁断辛參貫利貧和墮欺万断議坿旗鷹賜淫猟周。
葎阻繍MySQL嚥Perl潤栽聞喘?低珊俶勣乂叫廉: Perl DBI庁翠。崛富低哘乎和墮DBI, Msql-Mysql-modules, Data-Dumper才Data-ShowTable吉。
云猟音初府万断議芦廾狛殻?咀葎椎載酒汽?揖扮淫嶄議傍苧猟周厮将戻工阻低俶勣岑祇議侭嗤坪否。
Perl畠各頁糞喘姜村嚥烏御囂冱(Practical Extraction and Report Language)。 恷兜万喘噐猟周侃尖?蛍裂?姜勣...??載酔万議孔嬬祥嗤阻制婢。 低叱窄辛參喘万栖恂販採 販採並秤?狼由砿尖?CGI重云殻會參式方象垂俊笥殻會。
Perl淫根噐俯謹(泌惚音嬬各頁畠何議三)Unix窟佩井云嶄? 万断嶄嗤乂頁窒継議?嗤乂音頁。云猟亟恬扮?糧協議井云頁5.6.1?井云5.7.2壓霞編嶄。 云猟寡喘議頁5.005_03,載音危議匯倖井云?勝砿析泣。泌惚低議字徨珊短嗤廾Perl,低辛參貫http://www.perl.com/和墮。Perl戻工阻俯謹庁翠?喘万断叱窄辛參頼撹販採並?低辛參貫宸倖利嫋議CPAN生朕孀欺万断。
恷朔匯泣?葎阻斑宸曾嶽罷周寔屎蝕兵垢恬?低珊俶勣匯倖web捲暦匂。Apache哘乎頁匯倖音危議僉夲?万鹿撹噐謹嶽Unix狼由嶄。 泌惚低珊短嗤?辛參欺http://www.apache.org/和墮。

聞喘議袈箭

低匆俯厮将廣吭欺LinuxFocus墫崗嗤謹嶽囂冱議井云。宸祥吭龍彭恬葎園辞俶勣揖扮砿尖 仟猟嫗參式万議咎猟井云。匯違秤趨和?厘断辛參心欺寄埃200鐙猟嫗?峠譲耽鐙猟嫗嗤5倖囂冱議井云?宸劔恢伏阻寄埃1000鐙猟嫗旺拝珊壓写偬奐海? 宸乂猟嫗俶勣瓜贋亀?鯉塀炎彈晒?悳潤式姜勣.....哘乎奕担恂宸乂並?輝隼?喘Perl!
厘断議悳園Guido Socher園亟議俯謹perl殻會聞厘断議垢恬延議酒汽阻俯謹?麿亟狛匯云眉何遊議 Perl縮殻才匯云得胎Perl議慕。歌孚云猟挑硫議歌深猟孽何蛍。
Javi,厘断議廉萎兩園辞?喘Perl園亟阻匯倖殻會栖砿尖鍬咎序業。
Atif頁厘断議苧佛恬宀? 麿栖徭perl藍忽?侭參麿議銚囂祥頁Perl。 麿揖扮匆廱亟購噐MySQL圭中猟嫗?崑薦噐匯倖WEB砿尖垢醤個序垢恬。 揖劔低辛參壓歌深猟孽何蛍孀欺麿。
悳岻?泌惚低壓儖孀匯倖Perl弊順?紗秘LinuxFocus。
厘頁LinuxFocus隈猟井議園辞岻匯?厘厚請?噐頁幹秀阻徭失議LinuxFocus方象垂?佳佳喘焚担: MySQL 才Perl!

秀羨方象垂

遍枠低哘輝厮将屎鳩芦廾阻MySQL?旺塘崔挫喘薩畜鷹。購噐芦廾旺音頁云猟網胎議坪否?MySQL徭揮議 寄楚猟亀厮将宙峰阻侭嗤聾准。
mysql.server尼強MySQL捲暦匂,宸倖凋綜揖扮距喘 safe_mysqld 便擦序殻?咀緩低辛參公万勧歌。

mysql -h host -u user -p

銭俊欺捲暦匂?泌惚捲暦匂祥廾壓低云字貧?祥音喘紗歌方-h host
補秘畜鷹涙列朔?低繍銭俊欺捲暦匂。孖壓辛參秀羨徭失議方象垂阻。
壓mysql凋綜戻幣憲彜蓑和補秘

CREATE DATABASE lf;

?宸倖頁厘断議幣袈方象垂(lf旗燕LinuxFocus)? 低辛參功象低議俶勣凋兆撹艶議。俊和栖祥頁公喘薩娩幡阻?輝隼遍枠低勣嗤怎校議幡尫?低俶勣 喘嗤administrator幡尫議喘薩銭俊?。泌惚俶勣斑蝶倖喘薩砿尖方象垂?宥狛

GRANT ALL ON lf.* TO username;

公麿娩幡。補秘

USE lf

僉夲胡嘉幹秀議方象垂?旺幹秀匯嫖燕。 壓宸戦厘断幹秀議燕頁trissue,凋綜鯉塀葎?

CREATE TABLE trissue (num INTEGER UNSIGNED, category VARCHAR(25), title VARCHAR(40), author VARCHAR(20), en VARCHAR(20), es VARCHAR(20), fr VARCHAR(20),de VARCHAR(20), nl VARCHAR(20), ru VARCHAR(20), tk VARCHAR(20), issue VARCHAR(20));

宥狛和中議凋綜辛參殊臥匯和厘断胡嘉幹秀議燕坪否頁倦屎鳩

USE lf
SHOW TABLES;
DESCRIBE trissue;


和中厘断俶勣壓燕嶄野秘方象?吏匯嫖腎燕嶄擬秘方象議恷酒汽議圭隈祥頁聞喘匯倖 揮TAB蛍侯憲議猟云猟周。泌惚猟云猟周厮将彈姥挫?補秘

LOAD DATA LOCAL INFILE "maindb.txt" INTO TABLE trissue;

泌惚低議猟云猟周短嗤 諒籾?椎担孖壓宸嫖燕祥厮将野挫方象?低辛參宥狛補秘參和凋綜殊刮匯和?

SELECT * FROM trissue;

宸繍擬崑?塋紹燦?楹さ珍弍蹇? 孖壓?低祥辛參序佩臥儂栖資誼販採窃侏議方象阻。
ok,欺孖壓葎峭? 厘断叙叙喘阻MySQL?祥辛參恂販採並秤?椎担?喘Perl栖恂焚担?

Perl議垢恬

Perl辛參逸廁厘断徭強序佩臥儂?繍潤惚?塋承述燦?WEB箝誓匂貧?吉吉。嶷鹸匯演? 遍枠俶勣葎Perl芦廾屎鳩議庁翠聞岻嬬嚥MYSQL選栽垢恬。
孖壓厘断喘Perl栖亟匯倖CGI重云。万議恬喘頁繍Perl嚥HTML室宝潤栽參糞孖臥儂方象垂 旺繍潤惚鯉塀晒補竃。
厘断喘匯倖酒汽議重云栖臥儂蝶匯恬宀議侭嗤猟嫗??塋称蔦袖脹犧釘iii崟爍? 炎籾?音揖囂冱井云議鍬咎宀議侖兆?窟燕猟嫗議墫崗豚催。
低辛參繍宸倖重云輝恬匯倖庁翠聞喘?徽頁廣吭宸倖箭殻旺音頁匯倖 掲械辛真議殻會。低辛參貫和中議全俊和墮欺匯倖嗤峋聾廣瞥議井云。=>here<=.

#!/usr/bin/perl -Tw
# First, we say this is a "Tainted" Perl script.
#
# This is a comment
# db consult
#
# We use the Perl DBI module
use DBI;

# As cgi :
use CGI qw(param());

print <<END_of_start;

Content-type: text/html

<html>
<title>LFAuthors main db</title>

<center><TABLE>
<TR VALIGN=TOP>
<TD><form action="/cgi-bin/lf.cgi" method="get">

# Here comes the button's title for the launching page
<input type="submit" value=" LFAuth ">
</form>
</TD>
</TR>
</TABLE>

和中喘重云肇臥儂方象垂。

<center><H2>Search by author</H2></center>

<form action=\"/cgi-bin/lf.cgi\" method=\"get\">Author name : <input
type=\"text\" size=\"30\" name=\"author\"><input type=\"submit\"
value=\"Search...\"></form></center>


END_of_start


if (param("author") ne '') {
$author = param("author");

$autsrch.='"';
$autsrch.=$author;
$autsrch.='"';

# We connect to the database named lf as user doe

$dbh = DBI->connect("DBI:mysql:lf","doe",'');

$sth = $dbh->prepare("
select *
from trissue
where
author = $autsrch
");

$sth->execute;

俊彭喘重云肇?塋床蚪嚬畊菑? 泌惚厘断音尫崙臥儂訳周?繍氏?塋廠?鍪歐盖痛窠伉敞檻h膵?卉婆畊Ü燦沆煮瀰嫦菪t鮖疣塋廠? 嚥乎恬宀屢購議侭嗤猟嫗。輝低議方象垂嗤貧認訳芝村扮?音容呪?塋廠毖窠伉敞檻?

print <<END_suite;

<center>
<TABLE BORDER=>
<tr bgcolor=#A1C4EE>
<th width=60 align=CENTER><font color=#000000> Num </font></th>
<th width=110 align=CENTER><font color=#000000> Category </font></th>
<th width=110 align=CENTER><font color=#000000> Title </font></th>
<th width=110 align=CENTER><font color=#000000> Author </font></th>
<th width=110 align=CENTER><font color=#000000> En </font></th>
<th width=110 align=CENTER><font color=#000000> Es </font></th>
<th width=110 align=CENTER><font color=#000000> Fr </font></th>
<th width=110 align=CENTER><font color=#000000> De </font></th>
<th width=110 align=CENTER><font color=#000000> Nl </font></th>
<th width=110 align=CENTER><font color=#000000> Ru </font></th>
<th width=110 align=CENTER><font color=#000000> Tk </font></th>
<th width=110 align=CENTER><font color=#000000> Issue </font></th>
</tr>

END_suite

while( ($num,$category,$title,$author,$en,$es,$fr,$de,$nl,$ru,$tk,$issue) =$sth->fetchrow() ) {
print "<tr>";
print "<td width=60 bgcolor=#FFFFE8 align=center> $num</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $category</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $title</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $author</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $en</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $es</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $fr</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $de</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $nl</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $ru</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $tk</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $issue</td>";
print "</tr>";

}
print "</TABLE>";
print "<BR>";
print "<BR>";
print "<br>";


} else {

# DB Connect

$dbh = DBI->connect("DBI:mysql:lf","doe",'');


# Search

$sth = $dbh->prepare("
select *
from trissue
");

$sth->execute;


# Display result


print <<SUITE;

<center>
<TABLE BORDER=>
<tr bgcolor=#A1C4EE>
<th width=60 align=CENTER><font color=#000000> Num </font></th>
<th width=110 align=CENTER><font color=#000000> Category </font></th>
<th width=110 align=CENTER><font color=#000000> Title </font></th>
<th width=110 align=CENTER><font color=#000000> Author </font></th>
<th width=110 align=CENTER><font color=#000000> En </font></th>
<th width=110 align=CENTER><font color=#000000> Es </font></th>
<th width=110 align=CENTER><font color=#000000> Fr </font></th>
<th width=110 align=CENTER><font color=#000000> De </font></th>
<th width=110 align=CENTER><font color=#000000> Nl </font></th>
<th width=110 align=CENTER><font color=#000000> Ru </font></th>
<th width=110 align=CENTER><font color=#000000> Tk </font></th>
<th width=110 align=CENTER><font color=#000000> Issue </font></th>
</tr>

SUITE

while( ($num,$category,$title,$author,$en,$es,$fr,$de,$nl,$ru,$tk,$issue) =$sth->fetchrow() ) {
print "<tr>";
print "<td width=60 bgcolor=#FFFFE8 align=center> $num</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $category</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $title</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $author</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $en</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $es</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $fr</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $de</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $nl</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $ru</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $tk</td>";
print "<td width=110 bgcolor=#FFFFE8 align=left> $issue</td>";
print "</tr>";

}
print "</TABLE>";
print "<BR>";

}
print end_html;
$sth->finish;


# Disconnect

$dbh->disconnect;

exit;

宸戦頁箝誓匂完笥?塋承腸蚪嚬畊菪?

query


芦畠圭中

泌惚低?葎低議利嫋紗貧方象垂屶隔?低?堡子Ě実念家?垉栂別癲U眄鑪卉撚〜嗣畊? 匯倖圭宛肇梓何祥萎議盾畳WEB捲暦匂賜方象垂捲暦匂芦畠諒籾?隼遇嗤匯乂児云議圻夸珊頁俶勣 廣吭議。
酒汽泣傍?輝低?壓WEB捲暦匂貧戻工凪万孔嬬扮?遍枠俶勣深打議頁WEB捲暦匂議芦畠來。 宸嚥云猟議麼籾涙購?嗤載謹猟亀網胎阻宸圭中坪否。匯倖曳熟挫議肇侃頁 the Linux Documentation Project.
俊和栖議匯化効低議方象垂捲暦匂嗤購。壓芦廾匯乂垢醤罷周曳泌MySQL,音勣梨阻堋響罷周返過嶄 購噐芦畠來議何蛍。壅嶷鹸匯和購噐喘薩畜鷹議児云圻夸?音勣斑販採嬖催短嗤畜鷹?蒙艶頁方象垂 議root嬖催?宸倖効柴麻字議root嬖催頁音揖議?。総匯倖勣泣頁幡尫議譜崔?蒸音勣繍侭嗤嬖催脅験嚠 頼畠陣崙議幡尫。宸劔恂?垉頂榮娜蕋r魎鉾肪罵┳?疝跎釦瞎撒磧?
緩翌?珊辛參編編chroot方象垂。低辛參心心宸匯豚戦Mark議猟嫗 麿讐議頁総翌匯倖方象垂徽宸乂坪否辛哘喘欺MySQL嶄。
総匯倖芦畠企仏膚式欺方象議勧僕狛殻。 壓匯倖砿祇?tunnel?戦俊辺才窟僕方象頁倖音撒議麼吭。歌深Through the tunnel
恷朔徽挽頁嶷勣議匯泣?園亟芦畠議殻會。 Perl頁匯嶽琉寄議囂冱?徽壓園亟殻會議狛殻嶄将械否叟竃危。総翌匯鐙LinuxFocus猟嫗繍縮低泌採恂? 蒙艶頁喘Perl議扮昨。 心心宸鐙猟嫗. 宸頁"園亟芦畠議殻會"狼双議恷朔匯鐙猟嫗?廨壇霧欺阻嗤購CGI重云議諒籾。?駅響??
輝隼,厘断遍枠邪協阻壓宸匯乂企仏岻念低厮将啜嗤匯倖載釈耕議狼由?短嗤椎乂广兆議息挟?厮将芦廾阻恷仟議 温供?參式凪万匯乂駅姥議芦畠垢醤?曳泌NIDS(Network Intrusion Detection System)議snort(from http://www.snort.org/), 契諮能,極笥嚥芦畠膝宙垢醤(nmap, nessus)吉吉。
泌惚低将蔀貧嬬校覚鞭?低辛參 壓艶議匯岬柴麻字貧芦廾捲暦匂?宸劔?祥嗤阻匯倖汽鏡議WEB捲暦匂?匯倖汽鏡議方象垂捲暦匂...參式承崧捲暦匂? 參緩栖資誼互辛真來。 少御?葎隠屬芦畠侭恂議 垢恬喟垓音氏潤崩?喟垓音辛嬬嗤寔屎議芦畠。低峪頁編夕肇受富裡孁?耽爺万断脅延誼厚紗裡孁。

凪万

咀葎"There Is More Than One Way to Do It",低辛參僉夲低議圭塀。 孖壓嗤俯謹嶽RDBMS?參式俯謹嶽嚥岻屢購議囂冱。亟宸鐙猟嫗頁葎阻婢幣MySQL嚥Perl頁泌採竃弼議栽恬。
輝隼?宸嶽僉夲揮嗤苧?垉綴濹柞圍採厦音?MySQL?咀葎万弌?辛參壓俯謹狼由貧塰佩? 堀業酔?辛真...厘匆掲械仞浜MySQL怏議垢恬?音氏梨芝巉謹議誘後宀。厘恷葎仞浜議頁?麿断 旺音頁壓恂嶷鹸來議垢恬(壓緩岻念厮将嗤斌匍罷周議盾畳圭宛)?遇頁斑並秤延議厚紗酒汽。
購噐Perl,勣傍議脅傍阻。珊勣温割匯乂? 厘屢佚短嗤万低頁涙隈垢恬議?音砿低頁匯倖利砿珊頁匯倖殻會埀珊頁恂艶議垢恬。 Perl巷芙(the perl community)頁弊順貧恷寄議彿坿住送仇岻匯。嗤匯云出恂Perl Journal議墫崗?孖壓頁SysAdmin墫崗議匯何蛍?耽豚曾鐙猟嫗?低辛參欺http://www.samag.com/匡堋。
匯乂籾翌三: LinuxFocus議響宀断匆俯短嗤廣吭欺嚥云墫崗屢購議匯乂繁?隼遇厘断抜辛參心欺LinuxFocus墫崗光嶽囂冱議井云。 嗤短嗤廣吭欺匯乂弌怏 ?麿断匆俯峪嗤匯曾倖繁?抜頼撹阻寄楚議垢恬。麿断頁利嫋略擦宀? 咎宀?吉吉。心心躯猟怏?輿串凪囂怏?低氏窟孖謹方猟嫗脅頁喇Kirill賜Erdal鍬咎。 心心届妄兩囂怏賜唖性荻囂雫?揖劔泌緩?宸乂繁孤阻謹担阻音軟議垢恬?厘勣?麿断燕幣廝斎?湖仍光了! 徭喇罷周弊順哘輝?低断崑仍。
宇埜宸乂効云猟議麼籾涙購?徽厘屢佚宸乂頁峙誼匯戻議。
指欺猟嫗輝嶄栖?斑厘參匯粁購噐徭喇罷周議猟忖栖潤崩云猟。哘輝湖仍椎乂垢恬噐MySQL才 Perl議繁?麿断?厘断戻工阻俯謹琉寄議垢醤?旺拝謹方頁窒継議。宸乂垢醤嚥寔屎議斌匍 恢瞳屢曳匆坐音儼弼?泌惚音嬬曳万断竃弼議三?。万断将械厚仟?現嗤峋聾議猟亀?低辛參 委万断喘噐叱窄侭嗤Unix狼由嶄。低嬬孀欺揖劔竃弼議艶議罷周宅?厘?音嬬?
宸鐙猟嫗辛嬬短嗤縮低謹富叫廉?徽頁泌惚万聞低状誼嗤駅勣編編宸乂罷周?万祥頁嗤喘議。
厘断音頁伏試壓匯倖琉寄議扮旗?

歌深

Perl.org
cpan.org, Perl猟亀嶄伉

Guido議Perl縮殻?

Perl I
Perl II
Perl III

廨匍Perl園殻慕得

Perl Programming

Atif議MySQL砿尖垢醤

LinuxFocus墫崗議MySQL得胎: 析猟嫗?徽珊辛匯響

MySQL

LinuxFocus貧議匯鐙熟析議SQL縮殻

SQL Part I
SQL Part II

斤宸鐙猟嫗窟燕得胎

耽鐙猟嫗脅嗤光徭議郡澄匈中。壓宸倖匈中戦?艇辛參戻住得胎?匆辛參臥心凪麿響宀議得胎?

麼匈喇LinuxFocus園辞怏略擦
© Georges Tarbouriech, FDL
LinuxFocus.org
泣似宸戦?LinuxFocus烏御危列賜戻竃吭需
鍬咎佚連:
en --> -- : Georges Tarbouriech <georges.t(at)linuxfocus.org>
en --> zh: yey <yeyxx(at)263.net>

2002年01月14日, generated by lfparser version 2.23

AltStyle によって変換されたページ (->オリジナル) /