|
|
This document is available in: English Castellano ChineseGB Deutsch Francais Nederlands Portugues Russian Turkce Arabic |
������ Georges Tarbouriech <georges.t(at)linuxfocus.org> ���� �� ������: Georges ����� �� ����ӡ ���� �������� ���� ����� �� ������ ������ �������� ����� �� ����� ��������� ����� ��� �������: Taha Zerrouki <taha(at)linuxfocus.org> ������: |
���� ������:
MySQL � Perl ������ ��� �� ����� � �� ���� ������� ��� ��� �� ������ ����� ��� ������ ����� �� ���� �������� � ��� ������ ��ǡ ���� ��� �������� �� �� ������ ������ɡ� ����� ���� ���� �� ����� ����� ����� � ����ǡ � ���� ������ �� ������� ������ ���������. ���� ��� ���� ������� ���� �� ���.�.�.� � �� ���� ��ǡ ���� ����� �� �������ǡ ��������� ������ �� �� ������ ���� �������
MySQL ���� ����� ����� �������� Relational DataBase Management System (RDBMS) ���� ��
http://www.mysql.com. ��� ������ GNU GPL
���� ����� ������ �����.���� ������� �� ���� ���.�.�.� .
���� ����� �� ����� ��� ��� ����� (platforms) .
������ �� ����� ����� ����� ������ ������ ��ɡ ����� ���� ���� �������� ����ǡ � �������� MySQL
���� ������ ������ �������. � �� ����� ���� ������� "��������" ��� Informix � Oracle� Sybase� �� �����
�� MySQL �� ������ ������� .
.
�� �����ǡ ����� �������� 3.23.46 (��������).
��� ��� ����� ��� ������ ������� ������� �� 3.23.46 � ������� �������� ������� �� 4.0.
��� ��������� �� ����� ��� ����� ( ��� source code) � ����� ( compile) ��� ��� � ���� ���� (package ).
����� �� MySQL �� ��� ����� ��� ������� : ����� DBI ����
. � ��� ����� ���� ����� DBI � Msql-Mysql-modules � Data-Dumper
� Data-ShowTable.
�� ����� ��� ������� ������� ��� �� ���� ����� �������� ������� ������.
Perl ������ ���� ������� � ��������� ��������
(Practical Extraction and Report Language )����� �� ��� �����
��� ������ ��������� (����� � �������)�
����� ����� ��
�� ����� ��� ���� �� ��� �� ���� ������� � ��������� scripts CGI � ��������� � ����
������ �����
��������.
��� ����� �� ������� ����� ����� ���� � �����. ��� ����� ����� ��� ��� ����
5.6.1� � ����� ������� �������� ��� 5.7.2 � ����� �� ������ � 5.005.03 ��� ���� ���� ���.
.http://www.perl.com ��� �� ������� ��� �����
� ��� ��� ����� ����� ��
��� ��� ����� ��� ��� �����ǡ ������ �� ��� CPAN �� ������ ���� ��� ���� �� ���!
���� �� ����� ��������� ��� ����� ���� ���! Apache���� ���� ��� �� ���� ����
�� ������� ����� � ���� �� ���� �� �������
( ���� �� ���� �� ��� ���� ���)
������ �� ����
http://www.apache.org.
���� ��� ����� �� ������ ������ �����ʡ �� ��� �� ��� ��� �������� ���ǡ ���� ����� �������� ������� � ������ǡ
��� ���� ���� ��ߡ � ���...
���� ����� �� ���� �� 200 ���� �� �� ���� �� ��� ���� �� 1000 ���� ( ���������!) � ������! ���� ����
(archive) � ���� � ����...
�� ���� �� ��ǡ ��� ��� � �� ����� �� ���!
���� ������� Guido Socher� ���� ����� ��� ������ɡ ������ �����. ��� ���� ����� ��� �� ����� �����
( ���� ������� �� ��� ������).
������ �������� Javi� ���� ������� ���� ������ ���� �������.
Atif� ��� ������� �������� ���� �� ����� ���
��� ������� ��� ����� �� MySQL ������ ���� ������ ����� ( ���� �������).
�� ���� ���� ����� ��� �� ����� �����.
���� ��� ���� ����� ��� �������� ��������� ������ �����ʡ ����� ������ ������� ������ ��:... ����ǿ ���ѡ � MySQL � Perl !
����� ��� MySQL � �� ���������� ������ ������ ����. ������� ���� �� ���� ��� ������
�� ����� ����� ��� ���� �� MySQL .
���� ���� ������� mysql.server� ������� ����� (daemon)safe_mysqld�
� ����� ���� �� ���� ��� �������� ��� ��� �������.
����� ������� ��
mysql -h host -u user -p.
� �� ������ -h host �� ��� ������ ���� ��� ��� ������.
��� �� ���� ���� ���ѡ �� ��� �� ����� �� ( � ��� �� ��� ����). � ���� ���� ����� ��������.
���� �� ��� �������
CREATE DATABASE lf;
��� ������ ( ����� ������� ����� ����)� ��� ��� ��� �������� ��� ����. �� ���� �������� ����������
( ��� �� ���� ����� ��� ��� �������� �� ���� �� ������� ). �� ���� �� ������ ����� ���
������� ����� �� ���� �� ��� ���� �����
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;
��� �� ���.
���� ����� ��� �������� ���� ������ ������. ������� ������ �� ���� ���� ���ǡ
� ���� ����� ������� ������. �� ::
LOAD DATA LOCAL INFILE "maindb.txt" INTO TABLE trissue;
�� ��� ��� ����ǡ ������� ������ ���� �� ��� ��
SELECT * FROM trissue;
����� ����� �����.
���� ���� ��� �� ���� ���� �� ����.
��� ���� ������ ��� �� MySQL � �� ���� �� ���� ���� ���
������� ��� ��� ��� ����������� (queries) ���ɡ � ��� ��� ������� ������ ��ȡ � ��� ���.
��� �� ����� �� ���� ����� ��� ����� ���� ����� ��� �� MySQL ���� ������.
����� ������� ��� ���������� ������� cgi. ��� ��������� ����� ��� HTML � Perl �������� ������� � ����� �������.
����� ������ ���� �� �������� ���� ����� ���� �ǡ ����� ��� ������ � ���� � ������ � ����� ��������� ��� ������
������ ( �������� ���� ��� �����) � ����� ���� ��� ��� ������.
���� ��� �������� ������ ����� �� ������ �����ߡ ��� ����� ������� ��� ��� ���� ��� ������� ���� .
# First, we say this is a "Tainted" Perl script.
#!/usr/bin/perl -Tw
#
# 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;
�� ���� �������� ���� ������� �� �����ǡ �� ���� �� ����� �� �� �� ������ɡ �� ����� �� ��� ���� ��
. � ���� �� �������.
����� �� ����
�� �� �� ������� �� ���� ����� ����� ��������� records.
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;
��� ����� ����� :
�� ���� �� ���� ���� ����� �������� �� ����ߡ ����� �� ����� ������.
�� ����� ��� ����� ������� � �� ����� �������ʡ �� ����� ��� �������.
�����ҡ ���� ���� �� ����� ���� ����� - �� �� ���� �� ���� ������- � �� ����� ����� ����� ������ �� ������� � ��� ����
the Linux Documentation Project.
����ǡ ����� ���� ���� ����� �������ʡ ���� ���� ��� ������� �� ���� ���������.
� ���� ��� ���� �� �� ��� �� ���� ��� ���� �ѡ �� ���� ���� ���� ������� ( ���� ��� ���� ������ ����).
��� �� ���� ����� ��� ���... ��� ���� �����ǡ ��� �� �������� ������ ���!
�� �� ����� ����� � ������ ����� ��������!
���� ����" ������� �� �������" � Marks �� ��� �����.
��� ����� �� ����� ������ ���� ��� �� ����� ���� ������ ��� MySQL.
"��� �����"������ ���� ��ѡ ��� ��� �������ʡ ��� �� ������ ��� ��ޡ ���� �� ��� ����
� ����ǡ ������� ������ ������ ���� ��ѡ �� ��� ����� �� �� ��� ��� ����� ����� ��� ����� ����� � ������ ���� ����
��� ����
�� ����� ������� ������ � ��� ����� �������
cgi �� ��� ( ���� �� �����).
��� ����� �� ���� ����� ���ǡ ���� ������� ������ɡ �� ��� ��������� ������� � ����� ����� ���
NIDS (Network Intrusion Detection System) ��� snort (�� http://www.snort.org), ���� ���, ����� � ������ �����
(nmap, nessus), � �����.
� ���� �� ���� ������� ������ ��� ����� ����: ���� ��� � ���� ����� ������... � ����� mirors ��� ������
��� ����� �� ���� ��� ����� ����� ����� �� ����� ���. ��� ����� ��� �� ������ѡ ������ ���� ���� ��� ���. ��� ����!
���� ����� ����� ����ɡ ��� ������ ���ǡ � ����� ����� �������� ����ɡ � ���� ������� ���� ���� ���� ����� ����. ��� ���� ������ ����� �� ������ ��� MySQL � ��� ����� ������ ���.
��� ������� ��� ������� ����ǡ ���� ���� MySQL ���� ���� ����� ���� ��� ��� � ���� ��� ����� ����� �����.
� ��� ���� ���� ���� MySQL ��� �� ���� ������ �������. � �� �� ������ ���� �� ������� ������ ��� ���� �� ������ �������.
��� ��� ��� �� �� ��� ��� ��� �� ����!
�� �� ������ ��� �� ��� ���� ���� �� ����� �� ��� ���.
����� ��� ���� ������� ���� �������. ���� ���� ���� ���� ����� Perl Journal ���� �� �� ����� �� ���� SysAdmin� ��� ���� �������� ��� ������
http://www.samag.com.
���� ������ �� ������� ������� ������ �� �� ������ �� ������ڡ � ���� ����� ������� ����� ���� �� �����
��� ��� �� ������ �� �����ɡ ��� ���� ������� �� ���� �����.
��� �� �� �������� �� ��� ����� ������ ���� ����� �����.
�� ����� ����� �� ����� ���� �� ����� ��� ������ � �������... ���.
�� ������ ������ � ������� ���� �� �� �������� ������� Kyrill �� Erdal .
�� ������ ����� ������ � ����� ��������� ���� ��� ����� � ������ ��� �� ����� �� ���.
����� ���� ������� �������� ����� ������ ������.
��� ��� ������ �� ������ڡ
����� ����� �� ��� ��� ��� �� ����.
���� ��� ������ǡ ����� ����� �� ������� �����. �� ������ �� MySQL � ��� ������� ���� ����� �� ������� ������ ����� ����ǡ ��� ������� ����� ����
������� �������� ( �� �� �����)
���� ���� ����� � ����� ���ǡ � ���� ��� �� ����� ����� � ��� ���� ����ǿ ��� �� ���.
���� �� ����� ��� ������ ���ǡ ��� �� ����� ��� ����� ���� �������ʡ � ��� ��� ��� ����.
����� ���� �� ��� ����
���� ���
���� Guido :
Perl I
Perl II
Perl III
���� ��� ���� "������� �������� ����"w :
����� ����
������
Atif
�� MySQL.
���� �� ������ �� MySQL : ���� ���� ���� ���� :
MySQL
���� ������ �� �����
SQL Part I
SQL Part II
|
������� ������ ���� ����� �����
© Georges Tarbouriech, FDL LinuxFocus.org ���� ��� ������� �� ��� �� ������ �������� ��� ����� ����� |
������� �� �������:
|
2002-01-31, generated by lfparser version 2.22