Chinaz.com - ÖйúÕ¾³¤Õ¾

ÄäÃûͶ¸å Ͷ¸åÖ¸ÄÏ RSS¶©ÔÄ Õ¾³¤×ÊѶͨ¸æ:
ËÑË÷: ÄúµÄλÖãºÖ÷Ò³>ÍøÂç±à³Ì>Mysql>ÔĶÁ×ÊѶ£ºÓÃPerl DBIÁ¬½ÓMySQLÊý¾Ý¿â

ÓÃPerl DBIÁ¬½ÓMySQLÊý¾Ý¿â

2008-05-09 09:47:57 À´Ô´:»¥ÁªÍø ×÷Õß:ØýÃû ¡¾´ó ÖРС¡¿ ÆÀÂÛ£º0 Ìõ

PerlÖÐÒ»¸ö×î¿áµÄÄ£¿é¾ÍÊÇPerlÊý¾Ý¿â½Ó¿Ú(Perl Database Interface£¬¼ò³ÆDBI)¡£Í¨¹ýÌṩһϵÁÐÔÚÄÚ²¿ÉÏÄܹ»×ª»¯³Éԭʼµ÷Óú¯ÊýµÄ¹¦ÄÜ£¬DBIÄ£¿éΪºÜ¶à²»Í¬µÄÊý¾Ý¿âÌṩÁËÒ»¸öͳһµÄ½Ó¿Ú¡£ÓÉ´Ë£¬Ê¹ÓÃPerl¾Í¿ÉÒÔºÜÈÝÒ×µØÀûÓÃÊý¾Ý¿âºÍ½¨Á¢¶¯Ì¬WebÍøÒ³¡£

µ±Ç°£¬MySQLÊǹ㷺ÓÃÓÚWebÍøÕ¾¿ª·¢µÄÊý¾Ý¿â£¬ËüÊÇÒ»ÖÖÃâ·Ñ¡¢¿ªÔ´µÄSQL²Ù×÷¡£±¾ÆÚÎÒÃǽ«½²Êöµ½ÈçºÎʵÏÖPerlÓëMySQLÏ໥ͨѶµÄ²Ù×÷£¬½«ÎªÄã½éÉÜÓÉDBIÌṩµÄÖØÒª·½·¨£¬ÔÚ¿ª·¢¹ý³ÌÖн²Êöµ½Ò»¸ö¼òµ¥µÄ½Å±¾Ä£°å¡£ÕâÒ»²Ù×÷µÄǰÌáÊǼÙÉèÄãµÄϵͳÒѾ­°²×°ÁËMySQLºÍPerl¡£

ÏÂÔØºÍ°²×°

¿ªÊ¼£¬ÏÂÔØ²¢°²×°Perl DBIÄ£¿éºÍMySQL DBD¡£Í¨¹ýÔÚPerl ÃüÁîÐÐÖÐÔËÐÐÒÔÏÂÃüÁî¼´¿ÉÍê³É°²×°¹ý³Ì£º

perl> perl -MCPAN -e "install DBI"

perl> perl -MCPAN -e "install DBD::mysql"

×¢Ò⣺Äã¿ÉÒÔÊÖ¶¯ÏÂÔØºÍ°²×°DBIºÍMySQL DBD¡£

ÏÖÔÚPerl DBIºÍMySQL DBDÓ¦¸Ã°²×°ÔÚÄãµÄϵͳÖС£

È»ºó£¬Í¨¹ýÔÚMySQLÓû§¶ËÃüÁîÐÐÊäÈëÒÔÏÂÃüÁÒÔ½¨Á¢Ò»¸öÓÃÓÚSQL²éѯµÄ±í¸ñ¡£

mysql> CREATE TABLE users (id INT(4) PRIMARY KEY, username VARCHAR(25), country VARCHAR(2));

Query OK, 0 rows affected (0.11 sec)

mysql> INSERT INTO users VALUES (1, 'john', 'IN'), (2, 'tom', 'US'), (3, 'layla', 'US');

Query OK, 3 rows affected (0.11 sec)

Records: 3 Duplicates: 0 Warnings: 0

Ò»µ©½¨Á¢±í¸ñ£¬¼ÌÐøÊ¹ÓÃDBI·½·¨½¨Á¢Ò»¸ö½Å±¾Ä£°å(¼û±íA)¡£

±íA

#!/bin/perl

# load module

use DBI;

# connect

my $dbh = DBI->connect("DBI:mysql:database=db2;host=localhost", "joe", "guessme", {'RaiseError' => 1});

# execute INSERT query

my $rows = $dbh->do("INSERT INTO users (id, username, country) VALUES (4, 'jay', 'CZ')");

print "$rows row(s) affected ";

# execute SELECT query

my $sth = $dbh->prepare("SELECT username, country FROM users");

$sth->execute();

# iterate through resultset

# print values

while(my $ref = $sth->fetchrow_hashref()) {

print "User: $ref-> ";

print "Country: $ref-> ";

print "---------- ";

}

# clean up

$dbh->disconnect();

Ëĸö²½Öè

µ±Ê¹ÓÃPerl DBIÖ´ÐÐÒ»¸öSQL ²éѯʱ£¬Çë×ñÑ­Ëĸö¼òµ¥µÄ²½Ö裺

1. ¿ªÊ¼Ê±£¬Í¨¹ýµ÷ÓÃconnect() ·½·¨³õʼ»¯Êý¾Ý¿âµÄ¾ä±ú¡£connect() ·½·¨½ÓÊÕÁ¬½Ó²ÎÊý²¢×÷Ϊ×Ö·û´®£¬°üÀ¨Êý¾Ý¿âÀàÐÍ("mysql")£¬Ö÷»úÃû³Æ("localhost")£¬ÒÔ¼°Êý¾Ý¿âÃû³Æ("db2")¡£Êý¾Ý¿âÃû³Æ("joe")ºÍÃÜÂë("guessme")×÷ΪµÚ¶þºÍµÚÈý¸ö±äÁ¿Ìṩ¸øconnect() ·½·¨¡£

2. ½¨Á¢SQL²éѯ×Ö·û´®£¬²¢Ê¹ÓÃdo()»òprepare()ÒÔ¼°execute()·½·¨Ö´ÐвéѯÓï¾ä¡£do()·½·¨ÊÇÕë¶ÔÓÚÒ»´ÎÐÔʹÓõÄINSERT£¬UPDATE»òÕßDELETE²éѯ£¬µ«prepare()ºÍexecute()·½·¨Õë¶ÔµÄÊÇSELECT²éѯ¡£Ê¹ÓÃÕâЩ·½·¨µÃµ½µÄ¶ÔÏó½«ÓÐËù²»Í¬£¬ÕâÈ¡¾öÓÚ²éѯµÄÀàÐÍ£¬²éѯ½á¹ûÊÇ·ñ³É¹¦Ò²ÊÇÈç´Ë¡£³É¹¦µÄSELECT²éѯ½«·µ»ØÒ»¸ö½á¹û¶ÔÏ󣬳ɹ¦µÄINSERT/UPDATE/DELETE ²éѯ½«·µ»ØÒ»Ð©Ïà¹ØµÄÐС£¶ø²»³É¹¦µÄ²éѯ½«·µ»ØÒ»¸ö´íÎó¡£

3. ¶ÔÓÚSELECT²éѯ£¬½á¹û¶ÔÏ󽫱»½øÒ»²½´¦ÀíÒÔÌáÈ¡Êý¾Ý¡£Ê¹ÓÃÒ»¸öÑ­»·£¬fetchrow_hashref()·½·¨½«·µ»ØÃ¿Ò»¼Ç¼×÷ΪPerlµÄÐźš£

4. ͨ¹ýµ÷ÓÃdisconnect()·½·¨½áÊø»á»°¡£

µ±ÄãÏ»ؼÌÐøÔÚPerlÖбàдMySQLÊý¾Ý¿âÁ¬½Ó´úÂëʱ£¬ÕâÒ»½Å±¾Ä£¿é½«¿ÉΪÄã½Úʡʱ¼ä¡£±à³Ì¿ìÀÖ£¡



Tags£ºMySQL   SQL  
ÔðÈα༭£ºË®É«»Ê³¯
  • ÇëÎÄÃ÷²ÎÓëÌÖÂÛ£¬½ûÖ¹ÂþÂî¹¥»÷¡£ Óû§Ãû£º £¨ÐÂ×¢²á£© ÃÜÂ룺 ÄäÃû£º
    ÆÀÂÛ×ÜÊý£º Ìõ [ ²é¿´È«²¿ ] ÍøÓÑÆÀÂÛ
    ¹ØÓÚÎÒÃÇ - ÁªÏµÎÒÃÇ - ¹ã¸æ·þÎñ - ÓÑÇéÁ´½Ó - ÍøÕ¾µØÍ¼ - °æÈ¨ÉùÃ÷ - È˲ÅÕÐÆ¸ - °ïÖú