[LinuxFocus-icon]
������  |  �������  |  ����  |  ���

����� | ������� | ����� | �� ������
This document is available in: English  Castellano  ChineseGB  Deutsch  Francais  Nederlands  Portugues  Russian  Turkce  Arabic  

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

���� �� ������:

Georges ����� �� ����ӡ ���� �������� ���� ����� �� ������ ������ �������� ����� �� ����� ���������



����� ��� �������:
Taha Zerrouki <taha(at)linuxfocus.org>

������:

 

MySQL � Perl, ����� ��������

MySQL and Perl

���� ������:

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 � �� ���� �� ���� ���� ���

 

Perl �� �����

������� ��� ��� ��� ����������� (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;


��� ����� ����� :

query


�� ��� � �����!

 

���� �����

�� ���� �� ���� ���� ����� �������� �� ����ߡ ����� �� ����� ������. �� ����� ��� ����� ������� � �� ����� �������ʡ �� ����� ��� �������.
�����ҡ ���� ���� �� ����� ���� ����� - �� �� ���� �� ���� ������- � �� ����� ����� ����� ������ �� ������� � ��� ���� 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

���� ��� ������� �� ��� �� ������ �������� ��� ����� �����
������� �� �������:
en --> -- : Georges Tarbouriech <georges.t(at)linuxfocus.org>
en --> ar: Taha Zerrouki <taha(at)linuxfocus.org>

2002-01-31, generated by lfparser version 2.22