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

������� | ������ | ������ | ��� LF
��� �������� �������� �� ��������� ������: English  Castellano  ChineseGB  Deutsch  Francais  Nederlands  Portugues  Russian  Turkce  Arabic  

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

�� ������:

Georges ����� ���������� Unix. ��� ��������, ����� �������� ���������������� ����������� ����������� ������� ���������� � ���������������� ������������.



������� �� �������:
�������� ������ <kirill(at)linuxfocus.org>

����������:

 

MySQL � Perl: �������������� ��������������

MySQL and Perl

������:

MySQL � Perl ��� ���������� ������ ����� ��������� �� ����� �������� ����������������� ������������ �����������. �� ��� �� ����� ��� ��� �� ������ ������������, �������� �� ������ "����". � ������� �������������� � ���������� ������������� ���� ������������ ��� � ��������, ��� � � ��������� ����. ��������������� � ������� ������ �������� Unix ������, �� ����� �������� ������������ ��� ��� ���, �� �� ����� ����� ���� ����������� � � ������ ���������������������� "��������".
� ������� ����� �������� - ����� ������ ����� ������ � ������� ���� ����������, �������� �� �������������, �������� �� ������, ������� ������������...
� ������ ������� � ������� ��� ���� ���� ��������� �� MySQL ��� Perl, ��� ���� ����������� ��� � ����� ������������.
����, ���� ���� - ���������� �������������� ���� ����������, �� �� ����� ��������, ��� "���������� ����� ������ ������� ������� ���".



 

���� ���� �� ���� �����������

MySQL - ������� ���������� ������������ ������ ������(RDBMS) - �� ���� - http://www.mysql.com. ��� ���������� ���������������� �� GNU GPL � ����������� �� ���� �������������. �������� �������� �� ������� �������������� �� ����� MySQL. MySQL �������� �� ������ ���������� � ��� ������ � ��� ������. ������� �� ����� �������� ���������������� ���������� ���� � ������ RDBMS, �� �� �� ����� ���������� �� � MySQL, ������, ��� ����� ������� ��� ������� ��� ������������. ����� �� ����� ���������� � � "������� �����������" ������������ ���������� - ������ ��������� ��� Informix, Oracle, Sybase... ���������� ����� �������, ��� MySQL �������� ���������� ������� ��� ��������. ��� ������� ����� ������������ ������ 3.23.36(����� �� - ������� �����������). � ������ ��������� ������� ���������� ������ 3.23.46 � �����������������, ����� ���������, ������ 4.0. �� ����� ����� ����� ��� ������� ��� � �������� �����, ��� � �������� ��������.
��� ������������� MySQL � Perl ���������� ������ Perl DBI, � ���� ���� ����� ������ DBI, Msql-Mysql-modules, Data-Dumper � Data-ShowTable.
�� ����� ������������ �� �� ��������� - ��� �������� � ����� ���� ��� ������ �������� ��� ����������� ����������.
Perl - "���� ��� ���������� � ������������� ������". ������� �������������� ������������ ��� ��� ��������� ����������, �� ����� ����� ������� ��� ���������� ����������� ����������� - �� ������� �������� ����������������� ������ �� ��������� cgi �������� � �������� ����������� � ����� ������.
Perl ������ � ������ ������(���� �� ����) ������������� Unix, ����� �� �������� �� �� - ���������� ��� ��� ���. ������� ���������� ������ 5.6.1, ����������������� - 5.7.2. ��� ����� ������� ����� ������������ ������ 5.005_03. ���� �� ����� ���������� �� ���������� Perl(��������� - ��� ����� ����� ��������� ?), ������ ������� ��� � ����� http://www.perl.com. ��� �� �� ������� ��������� �������, ������� ��������� � ������ CPAN ����� ��������.
� �������, �������������� ���� ���������� ����� ������������ ����� � ������� ���������� Apache! ����� Apache ������ ������, ��� ���� ��������� ����� ������ � �������� ������ ������������� Unix, ���� � ��� ��� ���(��� �� ������ ����� ���� ����������� ?) - �������� ��� � http://www.apache.org.

 

��� ������

�������� �� ��������, ��� LinuxFocus ������� �� ������ ������. ��� ������, ��� �������� ������� ������ ����� ����������� ����������� ��������� ������� - ����� ���������, ����� ���������� � �.�. � ��������� ����� ������ �������� ����� �� �������� 200 �������, ������� � ���� ������� ������ ������� �� 5 ������ - ��� ���������� �������� 1000 �������. � ���� ����� ��������� ���� �������� - ������������ ��, ����������� � �.�. � ��� �� ������� ��� ���� ����������? ������� �� Perl.
��� ������� �������� - Guido Socher ������ ��������� Perl ��������, ����� ��� ���� ����� ��������, ����� �� ������� ��� ������� � ����� Perl � ����� ����� �� ���������������� �� Perl(��� ������ � ����� �������).
Javi, �������� ��������� ������, ������ Perl ������ ��� ���������� ��������� �������� �������.
Atif, ���� �� ������ ����� ������� - �� ����������� Perl - ��� ������ ��� ������ ���� Perl. ����� �� �������� ������� MySQL - �������� ��� ����������� ���������� ����� ���.
� ������� ����� �� ����������� ���������� LinuxFocus, � ����� � ������� ������ ���� ����������� ���� ������ LinuxFocus - ������� �� � ������� MySQL � Perl!

 

�������� ���� ������

�� ������� �� ���������� ��� MySQL, ������ ������������� � �������� ��� ��������. ������������ �������� ��������� �� ������ � ����� ���� �������, ��� �����, ��� ������������, ������������ � MySQL - �������������.
��������� ������ MySQL � ������� ������� mysql.server.
����� ���������� ���������� � �������� � ������� �������

mysql -h host -u user -p.

���� ������ ������� �� ��������� ���������� - ����� �� ������������ ����� -h host.
����� ����� ������ �� ������������� � �������(�� ������� ���� ������ ������������!) � ������ ����� �������� ������� �������� ����� ����.
� ����������� mysql �������

CREATE DATABASE lf;

��� ��� ��� ��� ���� ������ - � ������ �� lf(LinuxFocus), �� ����������� ������ ���� �� ����� ������ ���. ����� ��������� ����� �������������, ����� ��� ������� �� ���� ������ �������� ������� ��������������. ���� �� ������ ����� ������������ ��� ��������� ����� ������ - ��������� ��������� �������:

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;

������ ������ �� ����� ���� ����� �������� SQL ���������.
�� ��� ��� �� ������������ MySQL � ����� ����� ���� ���������� - ������ �� ������ Perl �������� ��?

 

��� ������ Perl

Perl ������� ��� ���������������� �������, ���������� ���������� � �������� � �.�. ���� ��� ��� ��������� - �� ������ ���������� ������ ��� �������������� Perl � MySQL.
������ �� �������� Perl-�������, ������� ����� ������������ � �������� cgi-�������� - ��� ����� ��������� ���������, ��������� �� Perl � HTML, ����� ����� ���� ������������ � ������ ������� � ���������� ������.
��� ������ ����� �������� �������� �������, ���������� ����� ������� - ���������� �� ����� ���������� ����� �������, �� ���������, ��������, ����� ������������(������ ��� ��������� �������������� ������) � ������, � ������� ��� �����.
������ ������������ ���� ������ ��� ������ ��� ����� ����������� ��������, �� ������������ - ���� ������ ����� ����� �������� ������������, ����� ���������������� ������� ������� �����.


    # 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;

����� �������������� � ���������� ���������� �������. ���� �� �� ����� ������� ��� ������ - ��� ����� �������� ��� �������, ���� ��� ������ - ������ ������� ������. � ������ ������� ����� ������� � ���� ������ - �� ������� �������� ��� ����������!
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 - �������� ����� ��� ������.
��������� ������ - ������������ ������� ��� ������. ����� ������ ������������� MySQL �� ���������� ������, ����������� ������������ � ����������� �� MySQL. ������, �� ��� ������� �������� �������� - ������ ������������� - ������� �� ������� ������������ �������������, �������� root'�� ��� ������(����� ���������� �� root'� ����� �������). ��������� ������ ����� - ����� ������������� - ������� �� ������� ��� ����. ����� ���������� ��������� ����, �� ������ �������� ���� � ���!
���� ������� ���������� - ������ �� �� ������� chroot ���� ������? �������� �������� �� ������� "Chrooting all services" � ���� �������. � ��� �������������� � ������ ���� ������, �� ��������� ����� � � MySQL.
��������� ������ - �������� ������. ������� �� ������� ��� ������ ����� �������. ��������� ������� �����.
� ������� - ���������� ���������������� ��� ������ ������������ �������. Perl - ������ ���� ����������������, �� ������������ �� ��� ���������� ����� ������� ������ - ������� ����������� ��� ������� - ��� ��������� ���������������� ���������� cgi-��������. ����������� ��� ���������!
� ������������ �����, ��� ���� ������� �� ����� ������������� ��� � ������, �� ��� ����������� ��� ����� � ����� ���������� NIDS (Network Intrusion Detection System) ����� ��� snort (http://www.snort.org), ����������, �������� (nmap, nessus), � �.�.
������� ������������ ������ ����� ���������. ��������� ��������� ����� ������ ���������, �� ������ ���� ������ ��������������� ���������� ��� ���������� � ����������. ��� ������������.

 

��� ���?

��� ��� ���������� ����� ������ ������� ������� ��� - �� ������ ������� ����. �� ����� ���� ����� RDBMS � ������ ���������������� ���������� �����. ���� ����� ������� - �������� �������������� MySQL � Perl.
������� ����� ��� ������� ������������: ��� �������� MySQL �� ���� ��������� ������, ������� �������� ������ � ��������������������. ����� � ����� ������ ������ ������� MySQL � ���, ��� �� ��������. � ��� ��� �������� ������ ����� - ��� �� ���������� ������.
��� �������� Perl - ��� ������� ��� ������� ���������� � ���, ��� � ���� ��� ��������? ������� �� �� ������ �������� ��� ���� ��� �� �� �� ���� - ���������������, ������������� � �.�. ���� ������ Perl Journal, ������� ������ �������� � SysAdmin magazine ��� � ��� �������. ������ �����������? �������� http://www.samag.com.
��� �� �� ���������� � ������� ������ - ����������� ������� ��� ������� ������ ��������� �� ����� �������. �� �������� �� ��, �������� ������� LinuxFocus, ��� ���� ������� �� ��� �� ������, �� �������� �� ��� �� ������ ������ ������� �� ������ ������. �������� �� ��, ��� ��������� ������ ����� ���� ��� ��� �������� � ������ ��� ������? ��� � ���������� � ����������� � �.�. ���������� �� ������� ��� �������� ������ - ����������� ������� �������� ������ � Erdal. �������� �������� �� ������, ����������� � ������ �������� - ������������� � �������� - �� �� ��������! ��� ����� ������� ���������� �� � ���� ���������� �������. ������� ��� ���� - ���������� �������� ����������������� ������������ ����������� ���������� ���.
�������� �� ���������� �� ����, �� � ������, ��� ��� �� ����� ���� �� �������.
� ����� ������ ��� ���� ���� � �������� ���������������� ����������� �����������. ������� MySQL � Perl ����������� �������� �������������. ��� ���������� ���������� ����������� � ����������� ������� ���������. ��� ����������� ����� ��� �� ������ ��� � ������������(���� �� �����), ��� ��������� ����������, ������ �������������� � ������������� � ������������� �� ������ Unix ��������.
��� ������� �� ���� ��������� - �� ������ ������� ��� ���������� � ����� ������������� � ������ ��������� ��� �������.
�� ����� � ������� ������� - �� ������ ��?

 

������

Perl mongers

������� Guido � Perl :

Perl I
Perl II
Perl III

����� ����� �� ���������������� �� Perl :

Perl Programming

������� Atif � ������� MySQL.

������ ������� �� LinuxFocus � MySQL :

MySQL

������� �� LinuxFocus � SQL :

SQL Part I
SQL Part II  

�������� �������

� ������ ������� ���� �������� �������. �� ���� �������� �� ������ �������� ���� ����������� ��� ����������� ����������� ������ ���������.
 talkback page 

Webpages maintained by the LinuxFocus Editor team
© Georges Tarbouriech, FDL
LinuxFocus.org

Click here to report a fault or send a comment to LinuxFocus
Translation information:
en --> -- : Georges Tarbouriech <georges.t(at)linuxfocus.org>
en --> ru: �������� ������ <kirill(at)linuxfocus.org>

2002-01-02, generated by lfparser version 2.19