³¯Â¥: 1996-05-08 | ±Û¾´ÀÌ: µµ¾Æ | 7432 ¹ø | ÇÁ¸°Æ® | ¸ÞÀϷκ¸³»±â

Á¦ 8°­ - msqlperlÀÇ »ç¿ë¹ý


µ¥ÀÌÅͺ£ÀÌ¿Í À¥À» ¿¬µ¿ÇϱâÀ§Çؼ­´Â dB ¿£Áø ÀÚü¿¡¼­ Á¦°øÇÏ´Â API¸¦ »ç¿ëÇϰųª API¿Í À¯»çÇÑ dB ¾î´ðÅ͸¦ »ç¿ëÇؾßÇÑ´Ù.

Perl·Î µ¥ÀÌÅͺ£À̽º¸¦ Á¢¼ÓÇϱâÀ§ÇÑ ¸¹Àº ¾î´ðÅÍ°¡ ÀÖÀ¸¸ç, msqlperlÀº Perl·Î mSQLÀ» Á¢¼ÓÇϱâÀ§ÇÑ ¾î´ðÅÍÀÌ´Ù. ±âº»ÀûÀ¸·Î´Â mSQL¿¡¼­ Áö¿øÇÏ°íÀÖ´Â API ÇÔ¼ö¸¦ ÆÞ·Î ±¸ÇöÇÑ °ÍÀ̹ǷΠAPI¸¦ »ç¿ëÇÏ´Â °Í°ú °ÅÀÇ µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î »ç¿ëÇϸéµÈ´Ù.

ÆÞ°ú ´Ù¸¥ µ¥ÀÌÅͺ£À̽º¿Í ¿¬µ¿À» À§ÇÑ ¸ðµâÀº ´ÙÀ½ URL¿¡¼­ ±¸ÇÒ ¼ö ÀÖÀ¸¹Ç·Î Âü°íÇϱ⠹ٶõ´Ù.

http://www.hermetica.com/ msqlperlÀÇ »ç¿ë

msqlperlÀ» »ç¿ëÇϱâÀ§Çؼ­´Â msqlperlÀÇ Method¸¦ »ç¿ëÇϱâ Àü¿¡ ¹Ýµå½Ã ´ÙÀ½°ú °°Àº ¹®ÀåÀ» ¼öÇàÇØ¾ß ÇÑ´Ù.

use Msql;

msqlperlÀÇ ¸Å´º¾ó¿¡´Â use Msql2;¸¦ »ç¿ëÇϵµ·Ï µÇ¾îÀÖÁö¸¸ ½ÇÁ¦ ¼³Ä¡´Â Msql.pmÀ¸·Î µÇ¹Ç·Î use Msql2;¸¦ »ç¿ëÇϸé Á¦´ë·Î µ¿ÀÛÇÏÁö ¾Ê´Â´Ù. µû¶ó¼­ ¹Ýµå½Ã use Msql;À» »ç¿ëÇØ¾ß ÇÑ´Ù.

ÀÌ ¹®ÀåÀº ´ÙÀ½ ¹®Àå°ú Á¤È®È÷ µ¿ÀÏÇÑ ¹®ÀåÀÌ´Ù.

BEGIN {
	requrie 'Msql.pm';
	import Msql;
}

BEGINÀº ´Ù¸¥ °Íµé º¸´Ù ¿ì¼±Çؼ­ ó¸®Ç϶ó´Â ÆÞÀÇ Å°¿öµåÀÌ´Ù. ¹Ý´ë °³³äÀ¸·Î »ç¿ëÇÏ´Â END¶ó´Â Å°¿öµåµµ ÀÖ´Ù. Áö¿ø ¸í·É¾î

# µ¥ÀÌÅͺ£À̽º ¿£Áø¿¡ Á¢¼Ó
$dbh = Msql->connect; 			# ·ÎÄ® dB ¿£Áø¿¡ Á¢¼Ó
$dbh = Msql->connect($host); 		# ¿ø°Ý dB ¿£Áø¿¡ Á¢¼Ó
$dbh = Msql->connect($host, $database);	# À©°Ý dB ¿£Áø¿¡ Á¢¼ÓÇÑ ÈÄ, 
					# µ¥ÀÌÅͺ£À̽º¸¦ ¼±ÅÃ

# µ¥ÀÌÅͺ£À̽ºÀÇ ¼±ÅÃ
$dbh->selectdb($database); 		# µ¥ÀÌÅͺ£À̽ºÀÇ ¼±ÅÃ

# µ¥ÀÌÅͺ£À̽ºÀÇ ¸ñ·Ï°ú Å×ÀÌºí ¸ñ·Ï
@arr = $dbh->listdbs; 			# µ¥ÀÌÅͺ£À̽ºÀÇ ¸ñ·ÏÀ» °¡Á®¿È
@arr = $dbh->listtables; 		# Ç¥ÀÇ ¸ñ·ÏÀ» °¡Á®¿È
$error_message = $dbh->errmsg; 		# ÁúÀÇ ¼öÇà½Ã ¿À·ù¸Þ½ÃÁö¸¦ °¡Á®¿È

# µ¥ÀÌÅͺ£À̽º¿¡ ÁúÀǸ¦ Àü¼Û
$sth = $dbh->listfields($table); 	# Ç¥ÀÇ ½ºÅ°¸¶¸¦ °¡Á®¿È
$sth = $dbh->query($sql_statement); 	# SQL ¹®ÀåÀ» dB¿£ÁøÀ¸·Î Àü¼Û

# ÁúÀÇ °á°ú¸¦ °¡Á®¿È
@arr = $sth->fetchrow; 		# Ç¥ÀÇ ÇÑÇàÀ» °¡Á®¿È
%hash = $sth->fetchhash; 	# À§¿Í µ¿ÀÏÇÏÁö¸¸ ¿¬°ü¹è¿­·Î °¡Á®¿È
$sth->dataseek($row_number); 	# Çà¿¡´ëÇÑ ¿É¼ÂÀ» º¯°æ
$sth->as_string; 		# ÁúÀÇ °á°ú¸¦ ¹®ÀÚ¿­·Î °¡Á®¿È

# À妽º ó¸®
@indices = $sth->listindices; 			# mSQL 2.0¿¡¼­¸¸ »ç¿ë °¡´É 
@arr = $dbh->listindex($table,$index); 		# mSQL 2.0¿¡¼­¸¸ »ç¿ë °¡´É
($step,$value) = $dbh->getsequenceinfo($table) 	# mSQL 2.0¿¡¼­¸¸ »ç¿ë °¡´É

# ¸ÞŸµ¥ÀÌŸ. Å×ÀÌºí ½ºÅ°¸¶ Á¤º¸
$scalar = $sth->numrows; 	# Ç¥ÀÇ ÁÙ¼ö
$scalar = $sth->numfields; 	# Ç¥ÀÇ Çʵå¼ö
@arr = $sth->table; 		# °¢ ÇʵåÀÇ µ¥ÀÌºí ¸í 
@arr = $sth->name; 		# Çʵå¸í 
@arr = $sth->type;		# °¢ ÇʵåÀÇ Å¸ÀÔ, msql.h¿¡ Á¤ÀǵǾî ÀÖÀ¸¸ç, 
		   		# Msql::CHAR_TYPE, Msql::INT_TYPE, 
		   		# Msql::REAL_TYPE¸¦ ÅëÇØ Á¢±Ù°¡´ÉÇÏ´Ù. 
@arr = $sth->isnotnull; 	# Not nullÀÎÁö¸¦ ÆÇÁ¤ÇÏ´Â ºÎ¿ï°ªÀÇ ¹è¿­ 
@arr = $sth->isprikey; 		# Primary KeyÀÎÁö¸¦ ÆÇÁ¤ÇÏ´Â ºÎ¿ï°ªÀÇ ¹è¿­ 
@arr = $sth->length; 		# ¹ÙÀÌÆ®·Î Ç¥ÇöµÈ °¢ ÇʵåÀÇ ±æÀ̸¦ °®´Â ¹è¿­
¼³¸í

msqlperlÀº mSQL¿¡ Æ÷ÇԵǾî ÀÖ´Â C API¿Í °¡´ÉÇÑ ºñ½ÁÇÏ°Ô ¼³°èµÇ¾ú´Ù. msqlperlÀÇ ¶Ç´Ù¸¥ Ư¡Àº StudlyCaps¸¦ »ç¿ëÇÑ´Ù´Â °ÍÀÌ´Ù. StudlyCaps¿¡´ëÇÑ ÀÚ¼¼ÇÑ »çÇ×Àº ÀÌÀý µÞºÎºÐÀ» Âü°íÇϱ⠹ٶõ´Ù.

msqlperlÀº ³»ºÎÀûÀ¸·Î Msql¿Í Msql::StatementÀÇ µÎ°³ÀÇ Å©·¡½º¸¦ ó¸®ÇÏ°í ÀÖÁö¸¸ µÎ¹ø° Çü½ÄÀº °ÅÀÇ »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ÀÌ°ÍÀº query³ª listfield ¹®Àå¿¡ÀÇÇØ ¸®ÅϵǴ ½ºÅ×ÀÌÆ®¸ÕÆ® ÇÚµéÀ» ÅëÇØ ÀÚµ¿ÀûÀ¸·Î ÀÌ·ç¾îÁö¶§¹®ÀÌ´Ù. µû¶ó¼­ »ç¿ëÀÚ°¡ »ç¿ëÇÒ À¯ÀÏÇÑ Å©·¡½º´Â MsqlÀÌ´Ù. µ¥ÀÌÅͺ£À̽ºÀÇ Á¢¼Ó

msqlperlÀº ´ÙÀ½°ú °°Àº ¼¼°¡Áö ÇüÅÂÀÇ µ¥ÀÌŸº£À̽º Á¢¼Ó ¸í·ÉÀ» Á¦°øÇÑ´Ù.

$dbh = Msql->connect; 		# dB ¼­¹ö¿Í À¥ ¼­¹ö°¡ °°Àº È£½ºÆ®¿¡ ÀÖ´Â °æ¿ì 
$dbh = Msql->connect($host); 	# dB ¼­¹ö¿Í À¥ ¼­¹ö°¡ ´Ù¸¥ È£½ºÆ®¿¡ ÀÖ´Â °æ¿ì 
$dbh = Msql->connect($host, $database); 	# À§¿Í µ¿ÀÏÇϸç, 
					 	# Á¢¼Ó½Ã µ¥ÀÌŸ º£À̽º¸¦ ¼±ÅÃ

ÀÌ ¸í·ÉÀ» ÀÌ¿ëÇؼ­ »ç¿ëÀÚ´Â ¿øÇϴ ȣ½ºÆ®³ª µ¥ÀÌŸ º£À̽º¿¡ Á¢¼ÓÇÒ ¼ö ÀÖ´Ù.

ù¹ø° ¸Å°³º¯¼ö¸¦ ÁöÁ¤ÇÏÁö ¾Ê°Å³ª ³Î ¹®ÀÚ¿­À» ÁöÁ¤ÇÏ´Â °æ¿ì, msqlperlÀº UNIX ¼ÒÄÏ(ÀϹÝÀûÀ¸·Î /dev/msql)À» ÅëÇØ Á¢¼ÓÇÑ´Ù. ÀÌ °ÍÀº TCP¸¦ ÅëÇØ Á¢¼ÓÇÏ´Â °Íº¸´Ù ¼º´É¸é¿¡¼­ ÈξÀ ¿ì¼öÇϹǷΠdB ¼­¹ö¿Í À¥¼­¹ö°¡ °°Àº È£½ºÆ®¿¡ ÀÖ´Â °æ¿ì¿¡´Â ù ¹ø° ¸Å°³º¯¼ö¸¦ ÁöÁ¤ÇÏÁö ¾Ê°í »ç¿ëÇÏ´Â °ÍÀÌ ³´´Ù.

µÎ¹ø° ¸Å°³º¯¼ö·Î¼­ µ¥ÀÌŸº£À̽ºÀÇ À̸§À» ÁÙ ¼öÀÖÀ¸¸ç, ÀÌ ¸Å°³º¯¼ö·Î Á¢¼Ó ÈÄ Æ¯Á¤ µ¥ÀÌŸº£À̽º¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.

Á¢¼Ó¿¡ ¼º°øÇÑ °æ¿ì¿¡´Â µ¥ÀÌÅͺ£À̽º ÇÚµéÀ» ¸®ÅÏÇÏ¸ç ±×·¸Áö ¸øÇÑ °æ¿ì¿¡´Â µ¥ÀÌÅͺ£À̽º ÇÚµéÀº Á¤ÀǵÇÁö ¾Ê´Â´Ù.

µû¶ó¼­ µ¥ÀÌÅͺ£À̽º¸¦ Á¢¼ÓÇÑ ÈÄ ´ÙÀ½°ú °°Àº ÄÚµå·Î µ¥ÀÌÅͺ£À̽ºÀÇ Á¢¼Ó¿©ºÎ¸¦ È®ÀÎÇØ¾ß ÇÑ´Ù.

$dbh = Msql->connect;
defined($dbh) || die 'µ¥ÀÌŸº£À̽º¿¡ Á¢¼ÓÇÒ ¼ö ¾ø½À´Ï´Ù';

³ªÁß¿¡ µ¥ÀÌŸ º£À̽º¿¡ Á¢±ÙÇϱâÀ§Çؼ­´Â ÀÌ µ¥ÀÌŸº£À̽º ÇÚµéÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. µ¥ÀÌŸº£À̽º ÇÚµé

À§¿¡¼­ ¾ð±ÞÇÑ °Íó·³

$dbh = Msql->connect($host, $database);

·Î µ¥ÀÌŸº£À̽º ÇÚµéÀ» ¾òÀ» ¼ö ÀÖ´Ù. ÀÌ µ¥ÀÌŸº£À̽º ÇÚµé·Î Á¢¼ÓµÈ ¼ÒÄÏ, È£½ºÆ®, µ¥ÀÌŸº£À̽º¸¦ ¾Ë ¼ö ÀÖ´Ù.

$scalar = $dbh->sock; 
$scalar = $dbh->host; 
$scalar = $dbh->database;

´ÜÁö ÇϳªÀÇ º¯¼ö·Î Á¢¼ÓÇϰųª, º¯¼ö¾øÀÌ Á¢¼ÓÇß´Ù¸é, È£½ºÆ®¿Í µ¥ÀÌŸº£À̽º´Â Á¤ÀǵÇÁö ¾ÊÀº °ªÀ» ¸®ÅÏÇÑ´Ù. µ¥ÀÌÅͺ£À̽ºÀÇ ¼±ÅÃ

$dbh->selectdb($database); # dB ¼±ÅÃ. ¹Ýµå½Ã connect ¸í·ÉÀ¸·Î dB ¿£Áø¿¡ ¸ÕÀú 
			   # Á¢¼ÓÇØ¾ß ÇÔ

¸¸¾à connect ¸í·ÉÀ» »ç¿ëÇÒ¶§ µ¥ÀÌŸº£À̽º¸¦ ¼±ÅÃÇÏÁö¾Ê¾Ò°Å³ª ÀÌÀü¿¡ connect ¸í·ÉÀ¸·Î ¾òÀº µ¥ÀÌŸº£À̽º ÇÚµéÀ» »ç¿ëÇؼ­ ´Ù¸¥ µ¥ÀÌŸº£À̽º¸¦ Á¢¼ÓÇÏ·Á¸é selectdb¸¦ »ç¿ëÇÑ´Ù. µ¥ÀÌÅͺ£À̽ºÀÇ ¸ñ·Ï°ú Å×À̺íÀÇ ¸ñ·Ï

@arr = $dbh->listdbs(); # dBÀÇ ¸ñ·ÏÀ» ¹è¿­·Î ¸®ÅÏ. ¹Ýµå½Ã connect ¸í·ÉÀ»
			# ¸ÕÀú ½ÇÇàÇØ¾ß ÇÑ´Ù. 
@arr = $dbh->listtables; # dB¿¡ µî·ÏµÈ Å×À̺íÀÇ ¸ñ·ÏÀ» ¸®ÅÏ. 
			 # ¹Ýµå½Ã connect ¸í·É°ú selectdb ¸í·ÉÀ» 
			 # ¸ÕÀú ¼öÇàÇØ¾ß ÇÑ´Ù.

À§ÀÇ µÎ ¸í·ÉÀº dB ¿£Áø¿¡ µî·ÏµÈ µ¥ÀÌŸº£À̽ºÀÇ ¸ñ·Ï°ú µ¥ÀÌŸº£À̽º¿¡ µî·ÏµÈ Å×À̺íÀÇ ¸ñ·ÏÀ» ¹è¿­·Î ¸®ÅÏÇÑ´Ù. ¿¹1 - dB ¸ñ·Ï°ú Å×ÀÌºí ¸ñ·Ï °¡Á®¿À±â

´ÙÀ½Àº msqlperlÀÇ ¿¹·Î¼­ Á¢¼ÓÇÑ È£½ºÆ®¿Í ¼±ÅÃµÈ µ¥ÀÌÅͺ£À̽º¸¦ Ãâ·ÂÇÏ°í, µ¥ÀÌÅͺ£À̽ºÀÇ ¸ñ·Ï°ú ¼±ÅÃµÈ µ¥ÀÌÅͺ£À̽º¿¡ µî·ÏµÈ Å×À̺íÀÇ ¸ñ·ÏÀ» Ãâ·ÂÇÏ´Â ¿¹ÀÌ´Ù.

±â´ÉÀûÀ¸·Î´Â ¸í·ÉÇà¿¡¼­ »ç¿ëÇÏ´Â relshow¿Í À¯»çÇÑ ÇÁ·Î±×·¥À¸·Î º¸¸éµÈ´Ù.

 1 : #!/usr/local/bin/perl
 2 : use Msql;
 3 : 
 4 : $dbh = Msql->connect;
 5 : defined($dbh) || die 'µ¥ÀÌŸº£À̽º¿¡ Á¢¼ÓÇÒ ¼ö ¾ø½À´Ï´Ù';
 6 : $dbh->selectdb('commlab');
 7 : 
 8 : $sock = $dbh->sock;
 9 : $host = $dbh->host;
10 : $database = $dbh->database;
11 : 
12 : @db = $dbh->listdbs();
13 : @tables = $dbh->listtables();
14 : 
15 : print "Á¢¼ÓÇÑ È£½ºÆ®: $host\n";
16 : print "¼±ÅÃÇÑ µ¥ÀÌŸº£À̽º: $database\n";
17 : print "¼ÒÄÏ: $sock\n\n";
18 : 
19 : print "´ÙÀ½Àº µî·ÏµÈ µ¥ÀÌŸº£À̽ºÀÇ ¸ñ·ÏÀÔ´Ï´Ù.\n";
20 : print '+' . '-' x 38 . "+\n";
21 : for(0..$#db) {
22 : 	print '|   ' . $db[$_] . ' ' x (40 - length($db[$_]) - 5) . "|\n"; 
23 : }
24 : print '+', '-' x 38, "+\n\n";
25 : 
26 : print "´ÙÀ½Àº µî·ÏµÈ Å×À̺íÀÇ ¸ñ·ÏÀÔ´Ï´Ù.\n";
27 : print '+' . '-' x 38 . "+\n";
28 : for(0..$#tables) {
29 : 	print '|   ' . $tables[$_] . ' ' x (40 - length($tables[$_]) - 5) 
		. "|\n"; 
30 : }
31 : print '+', '-' x 38, "+\n";

msqlperlÀ» »ç¿ëÇϸ鼭 ÁÖÀÇÇÒ °ÍÀº msqlperlÀ» ÀÌ¿ëÇؼ­ µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼Ó, ÁúÀÇÇϱâÀ§Çؼ­´Â

#!/usr/local/bin/perl -w
use Msql;
$dbh = Msql->connect;
$dbh->selectdb('commlab');

¿Í °°Àº 4°³ÇàÀÌ ²À ÇÊ¿äÇÏ´Ù´Â °ÍÀÌ´Ù. ½ºÅ×ÀÌÆ®¸ÕÆ® ÇÚµé

´ÙÀ½ µÎ°³ÀÇ ¸Þ¼Òµå´Â ½ºÅ×ÀÌÆ®¸ÕÆ® ÇÚµéÀ» ¸®ÅÏÇÑ´Ù:

$sth = $dbh->listfields($table); 
$sth = $dbh->query($sql_statement);

$sth¸¦ ÀÌ¿ëÇϸé API¿¡ÀÇÇØ Á¦°øµÇ´Â ¸ðµç ¸ÞŸµ¥ÀÌŸ¸¦ ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù.

$scalar = $sth->numrows; 
$scalar = $sth->numfields; 
@arr = $sth->table; 		# °¢ ÇʵåÀÇ µ¥ÀÌºí ¸í 
@arr = $sth->name; 		# Çʵå¸í 
@arr = $sth->type;		# °¢ ÇʵåÀÇ Å¸ÀÔ, msql.h¿¡ Á¤ÀǵǾî ÀÖÀ¸¸ç, 
		   		# Msql::CHAR_TYPE, Msql::INT_TYPE, 
		   		# Msql::REAL_TYPE¸¦ ÅëÇØ Á¢±Ù°¡´ÉÇÏ´Ù. 
@arr = $sth->isnotnull; 	# Not nullÀÎÁö¸¦ ÆÇÁ¤ÇÏ´Â ºÎ¿ï°ªÀÇ ¹è¿­ 
@arr = $sth->isprikey; 		# Primary KeyÀÎÁö¸¦ ÆÇÁ¤ÇÏ´Â ºÎ¿ï°ªÀÇ ¹è¿­ 
@arr = $sth->length; 		# ¹ÙÀÌÆ®·Î Ç¥ÇöµÈ °¢ ÇʵåÀÇ ±æÀ̸¦ °®´Â ¹è¿­

¸¶Áö¸· 6°³ÀÇ ¸Þ¼Òµå´Â ¹è¿­À» ¸®ÅÏÇÑ´Ù(perlref¿Í perlldsc¸¦ º¸±â¹Ù¶õ´Ù). ´ÜÁö ÇÑ ÇʵåÀÇ À̸§¸¸ ÇÊ¿äÇÑ °æ¿ì ´ÙÀ½°ú °°Àº ½ºÄ®¶ó ÂüÁ¶¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

$name_of_third_column = $sth->name->[2]

´Â

@all_column_names = $sth->name; 
$name_of_third_column = $all_column_names[2];

¿Í µ¿ÀÏÇÑ ¹®ÀåÀÌ´Ù. ¿¹2 - Å×ÀÌºí ½ºÅ°¸¶ Ãâ·ÂÇϱâ

 1 : #!/usr/local/bin/perl
 2 : @var_type = ('¸ð¸§', 'Á¤¼öÇü', '¹®ÀÚÇü', '½Ç¼öÇü', 'Ident', '³Î', 
 		'ÅؽºÆ®', '³¯ÀÚ', 'È­Æó', '½Ã°£');
 3 : 
 4 : use Msql;
 5 : $dbh = Msql->connect;
 6 : defined($dbh) || die 'µ¥ÀÌŸº£À̽º¿¡ Á¢¼ÓÇÒ ¼ö ¾ø½À´Ï´Ù';
 7 : $dbh->selectdb('commlab');
 8 : 
 9 : @tables = $dbh->listtables();
10 : 
11 : foreach(@tables) {
12 : 	$sth = $dbh->listfields($_);
13 : 
14 : 	unless(defined($sth)) {
15 : 		print $dbh->errmsg(), "\n";
16 : 	}
17 : 
18 : 	@fields = $sth->name;
19 : 	@types = $sth->type;
20 : 	@notnull = $sth->isnotnull;
21 : 	@length = $sth->length;
22 : 
23 : 	print "Å×À̺í À̸§: $_\n";
24 : 	for(0..$#fields) {
25 : 		print "Çʵå¸í: $fields[$_]\n";
26 : 		print "ÇʵåÇü: $var_type[$types[$_]]\n" if($types[$_] <= 10);
27 : 		print "ÇʵåÇü: ½Ã½ºÅÛ\n" if($types[$_] > 10);
28 : 		print "ÇÊ¿äÇʵå: $notnull[$_]\n";
29 : 		print "±æÀÌ: $length[$_]\n\n";
30 : 	}
31 : }
SQLÁúÀÇ¿Í µ¥ÀÌÅÍ °¡Á®¿À±â

$sth = $dbh->listfields($table); 	# Ç¥ÀÇ ½ºÅ°¸¶¿¡´ëÇÑ ÇÚµéÀ» ¸®ÅÏ
$sth = $dbh->query($sql_statement); 	# ÁúÀÇ °á°ú¿¡´ëÇÑ ÇÚµéÀ» ¸®ÅÏ

ÀÌµé µÎ ¸í·ÉÀº mSQL ¼³¸í¼­¿¡¼­ ¼³¸íÇÏ°í ÀÖ´Â °Í°ú À¯»çÇÏ°Ô µ¿ÀÛÇÑ´Ù. À̵éÀº msql ¼­¹ö°¡ »ç¿ëÀÚ¿¡°Ô Àü´ÞÇÏ´Â °ÍÀÌ ¹«¾ùÀÎÁö ¾Ë ¼öÀÖµµ·Ï ÇÏ´Â ½ºÅ×ÀÌÆ®¸ÕÆ® ÇÚµéÀ» ¸®ÅÏÇÑ´Ù. ¿À·ù°¡ ¹ß»ýÇÑ °æ¿ì, ½ºÅ×ÀÌÆ®¸ÕÆ® ÇÚµéÀº Á¤ÀǵÇÁö ¾Ê´Â´Ù. µû¶ó¼­ ÁúÀǸ¦ ¼öÇàÇÑ ÈÄ¿¡´Â ¿À·ùÀÇ ¿øÀÎÀ» ¾Ë¾Æº¸±âÀ§ÇØ ´ÙÀ½°ú °°Àº Äڵ带 »ç¿ëÇØ¾ß ÇÑ´Ù.

unless(defined($sth)) {
    $msg = $dbh->errmsg;
    die "$msg";
}

listfields¿¡ÀÇÇØ ¸®ÅÏµÈ °ªÀ¸·Î Å×À̺íÀÇ Å©±â´Â ¾Ë ¼ö ¾ø´Ù. µû¶ó¼­ ÀÌ ½ºÅ×ÀÌÆ®¸ÕÆ® Çڵ鿡´ëÇÑ numrow()´Â "N/A"¶ó´Â ¹®ÀÚ¿­À» ¸®ÅÏÇÏ°Ô µÈ´Ù.

@arr = $sth->fetchrow; # Å×ÀÌºí¿¡¼­ ´ÙÀ½ ÇàÀÇ µ¥ÀÌŸ °ªÀ» ¹è¿­·Î ¸®ÅÏ

¼­¹ö·Î ºÎÅÍ ´ÙÀ½ ÇàÀÇ µ¥ÀÌŸ °ªÀÇ ¹è¿­À» ¸®ÅÏÇÑ´Ù. À¯»çÇÏ°Ô

%hash = $sth->fetchhash; # Å×ÀÌºí¿¡¼­ ´ÙÀ½ ÇàÀÇ µ¥ÀÌŸ °ªÀ» ¿¬°ü¹è¿­·Î ¸®ÅÏ

´Â ¿¬°ü¹è¿­À» ¸®ÅÏÇÑ´Ù. Çؽ¬¿¡¼­ Å°´Â Å×À̺íÀÇ Çʵå¸íÀÌ°í, °ªÀº ÇʵåÀÇ °ªÀÌ´Ù. Å×ÀÌºí¿¡ µ¿ÀÏÇÑ Çʵå¸íÀ» °®´Â Çʵ尡 ÀÖ´Â °æ¿ì µÑ Áß ÇÑ Çʵ带 »èÁ¦Çؾ߸¸ ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¸Áö ¾ÊÀ¸¸é fetchrow¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

$sth->dataseek($row_number); # °¡Á®¿Ã µ¥ÀÌŸÀÇ 옾¼ÂÀ» º¯°æ

½ºÅ×ÀÌÆ®¸ÕÆ® Çڵ鿡 ¿¬°üµÈ µ¥ÀÌŸÀÇ 옾¼ÂÀ» ÁöÁ¤ÇÑ´Ù. ´ÙÀ½¹ø fetchrow´Â dataseek¿¡ÀÇÇØ ÁöÁ¤µÈ Çà(ùÇàÀº 0)À» ¸®ÅÏÇÒ °ÍÀÌ´Ù. ÇѹøÀÇ Query ¼öÇàÀ¸·Î Àüü Å×À̺í Ç¥½ÃÇϱâ

½ºÅ×ÀÌÆ®¸ÕÆ® ÇÚµéÀÇ Àüü ³»¿ëÀ» º¸´Â ¼Õ½¬¿î ¹æ¹ýÀº as_string ¸Þ¼ÒµåÀÌ´Ù. ÀÌ ÀÛ¾÷Àº ´ÙÀ½ÀÇ ¸î¸î ¿¹¿Ü»çÇ×À» Á¦¿ÜÇÏ°í´Â msql ¸ð´ÏÅÍ¿Í À¯»çÇÏ´Ù.

  • Çʵå ÆøÀº ÇØ´ç Çʵ峻 Àüü ¿£Æ®¸®¸¦ Á¶»çÇÔÀ¸·Î¼­ °è»êµÈ´Ù.
  • Á¦¾î¹®ÀÚ´Â ¿ª½½¸®½¬µÈ 8Áø¼ö·Î »ç»óµÈ´Ù.
  • ¿ª½½·¡½¬´Â µÎ¹ø »ç¿ëÇÑ´Ù(\´ë½Å \\)
  • ¼öÄ¡ °ªÀº ¿Ã¹Ù¸£°Ô Á¶Á¤µÈ´Ù(Á¤¼ö¿Í ½Ç¼ö µÑ´Ù)

ÀÌ·¯ÇÑ Â÷ÀÌ´Â ´ÙÀ½ Ç¥¿¡ÀÇÇØ ¿¹½ÃÇÒ ¼ö ÀÖ´Ù: msql·ÎÀÇ ÀÔ·Â(½ÇÁ¦ ÁٹٲÞÀº ¿©±â¼­´Â ^MÀ¸·Î ´ëÄ¡µÇ¾ú´Ù.)

CREATE TABLE demo ( 
first_field CHAR(10), 
second_field INT 
) \g 

INSERT INTO demo 
VALUES ('new line',2)\g 

INSERT INTO demo 
VALUES ('back\slash',1)\g 

INSERT INTO demo 
VALUES ('cr^Mcrnl nl',3)\g

msqlÀÇ Ãâ·Â
ù¹ø° ÇÊµå µÎ¹ø° Çʵå
new line 2
back\slash 1
crnlr nl 3
pmsqlÀÇ Ãâ·Â
ù¹ø° ÇÊµå µÎ¹ø° Çʵå
new\012line 2
back\\slash 1
cr\015crnl\012nl 3
¿¹3 - °Ë»ö

´ÙÀ½Àº ƯÁ¤ µ¥ÀÌÅͺ£À̽ºÀÇ Æ¯Á¤ Å×À̺í·ÎºÎÅÍ DigitalÀ̶ó´Â ´Ü¾î¸¦ Æ÷ÇÔÇÑ ÇàÀ» °Ë»öÇÏ´Â ¿¹ÀÌ´Ù. Áß°£ÀÚ °Ë»öÀ» ÇϱâÀ§ÇØ like¸¦ »ç¿ëÇßÀ¸¸ç, ¸ð´ÏÅÍ ÇÁ·Î±×·¥ÀÎ msqlÀÇ Ãâ·Â°ú µ¿ÀÏÇÑ °á°ú¸¦ ¾ò±âÀ§ÇØ as_string ¸Þ¼Òµå¸¦ »ç¿ëÇß´Ù.

 1 : #!/usr/local/bin/perl
 2 : 
 3 : use Msql;
 4 : $dbh = Msql->connect;
 5 : defined($dbh) || die 'µ¥ÀÌŸº£À̽º¿¡ Á¢¼ÓÇÒ ¼ö ¾ø½À´Ï´Ù';
 6 : $dbh->selectdb('commlab');
 7 : 
 8 : $sth = $dbh->query("select * from testbook where pub like '%Digital%'"); 
 9 : unless(defined($sth)) {
10 : 	$msg = $dbh->errmsg;
11 : 	die "$msg";
12 : }
13 : $string = $sth->as_string;
14 : print $string;
ÇÚµéÀÇ Á¾·á

µ¥ÀÌŸº£À̽º³ª ½ºÅÂÀÌÆ®¸ÕÆ® ÇÚµéÀ» °®´Â ½ºÄ®¶ó º¯¼ö°¡ °ªÀ» °®Áö ¾ÊÀ» ¶§ MsqlÀº Àû´çÇÑ µ¿ÀÛ(°á°ú¸¦ »èÁ¦(free)Çϰųª µ¥ÀÌŸº£À̽º Á¢¼ÓÀ» Á¾·áÇÑ´Ù)À» ÃëÇÑ´Ù. µû¶ó¼­ °á°ú¸¦ »èÁ¦(free)Çϰųª Á¢¼ÓÀ» ´Ý°í½ÍÀ¸¸é ´ÙÀ½ Áß Çϳª¸¦ »ç¿ëÇÏ¸é µÈ´Ù.

  • ÇÚµéÀÇ Á¤ÀǸ¦ »èÁ¦
  • ´Ù¸¥ ¸ñÀûÀ¸·Î ÇÚµéÀ» »ç¿ë
  • ÇÚµéÀÌ ¿µ¿ªÀ» ¹þ¾î³ª·Ï ¼³Á¤
  • ÇÁ·Î±×·¥À» Á¾·á
¿À·ù¸Þ½ÃÁö

Msql Å©·¡½º¿¡¼­ ¿À·ù¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ´Â ¾ÈÁ¤ÀûÀÎ ¹æ¹ýÀº errmsg()·Î¼­ ÀÌ°ÍÀº C API¿¡¼­ Á¦°øÇÏ°íÀÖ´Â msqlErrMsg º¯¼öÀÇ ÇöÀç°ªÀ» ¸®ÅÏÇÑ´Ù. ¶ÇÇÑ Àü¿ªº¯¼ö·Î $Msql::db_errstr°¡ ÀÖÀ¸¸ç, ÀÌ º¯¼ö´Â Ç×»ó ¸¶Áö¸· ¿À·ù¸Þ½ÃÁö¸¦ °®´Â´Ù. errmsg()°¡ ´ÙÀ½¿¡ ¼öÇàµÉ ¸Þ½ÃÁö·Î ÃʱâÈ­µÇ´Â ¹Ý¸é $Msql::db_errstr´Â ±×·¸Áö ¾Ê´Ù. -w ½ºÀ§Ä¡

Msql¸¦ »ç¿ëÇÒ¶§ ÆÞÀÇ -w ½ºÀ§Ä¡´Â µð¹ö±ëÀ» Çϴµ¥ ¸¹Àº µµ¿òÀÌ µÈ´Ù. ¸¸¾à ÆÞ ÇÁ·Î±×·¥À» -w ½ºÀ§Ä¡·Î È£ÃâÇÑ´Ù¸é, errmsg()·Î ºÎÅÍ °æ°í¸¦ ¾òÀ» ¼ö ÀÖ´Ù. ÀÌ °ÍÀº ÇÁ·Î±×·¥³»¿¡¼­ ¿À·ù¸Þ½ÃÁö¸¦ ó¸®ÇÏÁö ¾Ê°íµµ msql ¼­¹ö·ÎºÎÅÍ ¿À·ù¸Þ½ÃÁö¸¦ ¾ò´Â ¼Õ½¬¿î ¹æ¹ýÀÌ´Ù.

¹«¾ùÀÌ ¾î¶»°Ô ÁøÇàµÇ´ÂÁö ÀÚ¼¼È÷ ¾Ë°íÀÚ ÇÏ´Â °æ¿ì, DavidÀÇ ¼³¸í¼­¿¡Àִ ȯ°æº¯¼ö¸¦ ¼³Á¤ÇÏ¸é µÈ´Ù. DavidÀÇ µð¹ö±ëÀ» À§ÇÑ Á¶¾ðÀº ¾ÆÁÖ ¶Ù¾î³­ °ÍÀ¸·Î µ¡ºÙÀÏ °ÍÀÌ ¾ø´Ù.

-w ½ºÀ§Ä¡¸¦ »ç¿ëÇϸ鼭 msql ¼­¹ö·ÎºÎÅÍÀÇ ¿À·ù¸Þ½ÃÁö¸¦ º¸°í½ÍÁö ¾Ê´Ù¸é $Msql::QUIET¶ó´Â º¯¼ö¿¡ Âü°ªÀ» ÇÒ´çÇÏ¸é µÈ´Ù. NULL Çʵå

Å×ÀÌºí ³»ÀÇ NULL Çʵå´Â Á¤ÀǵÇÁö ¾ÊÀº °ªÀ» ÆÞ¿¡ ¸®ÅÏÇÑ´Ù. mSQL 2.0¿¡¼­ »õ·Î¿î Á¡

API¿¡¼­ query()ÇÔ¼ö´Â query¿¡ÀÇÇØ ¿µÇâÀ» ¹ÌÄ¡´Â ÇàÀÇ ¼ö¸¦ ¸®ÅÏÇÑ´Ù. ¸®ÅÏ Äڵ尡 0º¸´Ù Å« °ªÀ̶ó¸é, ÀÌ°ÍÀº query°¡ Á¤»óÀûÀ¸·Î ¼öÇàµÈ °ÍÀ» ÀǹÌÇϸç query¿¡ÀÇÇØ ¿µÇâÀ» ¹ÞÀº ÇàÀÇ ¼ö¸¦ ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù.(Áï, SELECT¿¡ÀÇÇØ ¸®ÅÏµÈ ÇàÀÇ ¼ö, UPDATE¿¡ÀÇÇØ º¯°æµÈ ÇàÀÇ ¼ö, DELETE¿¡ÀÇÇØ »èÁ¦µÈ ÇàÀÇ ¼ö).

Å×ÀÌºí¿¡ ¿¬°üµÈ ¸ðµç À妽º¸¦ ã±âÀ§ÇØ ½ºÅ×ÀÌÆ®¸ÕÆ® Çڵ鿡´ëÇÑ listindices() ¸Þ¼Òµå¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù. À妽º¿¡ »ç¿ëµÈ Çʵ带 ã±âÀ§ÇØ µ¥ÀÌŸº£À̽º Çڵ鿡´ëÇÑ listindex($table,$index) ¸Þ¼Òµå¸¦ È£ÃâÇÒ ¼ö ÀÖ´Ù.

INT_TYPE, CHAR_TYPE, REAL_TYPE¿Ü¿¡ mSQL 2¿¡¼­´Â ¸î¸î »õ·Î¿î Çʵå ÇüÀ» °¡Áö°í ÀÖÀ¸¸ç ÀÌ Çü¿¡´ëÇÑ Á¢±ÙÀº IDENT_TYPE, NULL_TYPE, TEXT_TYPE, DATE_TYPE, UINT_TYPE, MONEY_TYPE, TIME_TYPE, IDX_TYPE, SYSVAR_TYPEÀ» ÀÌ¿ëÇÏ¸é µÈ´Ù. °¢°¢ÀÇ Çü¿¡´ëÇÑ °ªÀº ´ÙÀ½°ú °°´Ù.

INT_TYPE	  1
CHAR_TYPE	  2
REAL_TYPE	  3
IDENT_TYPE	  4
NULL_TYPE	  5
TEXT_TYPE	  6
DATE_TYPE	  7
UINT_TYPE	  8
MONEY_TYPE	  9
TIME_TYPE	 10
IDX_TYPE	253
SYSVAR_TYPE	254
´Ù¸¥ Æ÷Æ®·ÎÀÇ ¿¬°á

mSQL API´Â mSQLÀÌ ÄÄÆÄÀÏ µÉ¶§ ³»Á¤µÈ Æ÷Æ®°¡ ¾Æ´Ñ ´Ù¸¥ Æ÷Æ®·ÎÀÇ ¿¬°áÀ» Çã¿ëÇÑ´Ù. ÀÌ·¯ÇÑ Æ¯Â¡À» »ç¿ëÇϱâÀ§ÇØ MSQL_TCP_PORT¶ó´Â ȯ°æº¯¼ö¸¦ ¼³Á¤ÇØ¾ß ÇÑ´Ù. »ç¿ëÀÚ´Â ÇÁ·Î±×·¥ ³»¿¡¼­

$ENV{'MSQL_TCP_PORT'} = 1234; # ¶Ç´Â1112³ª 1113³ª 4333³ª 4334

¶ó´Â ¸í·ÉÀ» ÀÌ¿ëÇؼ­ ȯ°æº¯¼ö¸¦ ¼³Á¤ÇÒ ¼öÀÖ´Ù. ÀÌ ¸í·É¿¡ À̾îÁö´Â connect()´Â ÁöÁ¤µÈ Æ÷Æ®·Î ¼³Á¤µÈ´Ù.

·ÎÄà ¸Ó½ÅÀÇ UNIX ¼ÒÄÏÀ¸·Î connect()Çϱâ À§Çؼ­´Â MSQL_UNIX_PORT¸¦ »ç¿ëÇÑ´Ù. ¹öÀü Á¤º¸

MsqlPerlÀÇ ¹öÀüÀº Ç×»ó ÆÞ Ç¥ÁØÀ¸·Î¼­ $Msql::VERSION¿¡ ÀúÀåµÈ´Ù.

mSQL API´Â ¸î¸î ³»ºÎ ¼³Á¤ º¯¼ö¿¡ Á¢±ÙÇÏ´Â ¹æ¹ýÀ» ±¸ÇöÇß´Ù. ÀÌµé ¼³Á¤ ¸Å°³º¯¼ö´Â gethostinfo, getserverinfo°ú getprotoinfoÀÌ´Ù. ÀÌµé ¼¼°³ ¸ðµÎ Å©·¡½º ¸Þ¼Òµå·Î¼­ µ¥ÀÌŸº£À̽º ÇÚµéÀ» ÅëÇØ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ¾î¶² ȯ°æÇÏ¿¡¼­´Â µ¥ÀÌŸº£À̽º ÇÚµé°ú ¹«°üÇÒ ¼öµµ ÀÖ´Ù. ÀÌµé ¼¼°³´Â ÇöÀç ÇÁ·Î±×·¥³»¿¡¼­ ¸¶Áö¸· connect()¸í·ÉÀ» ¹Ý¿µÇÏ´Â Àü¿ªº¯¼ö¸¦ ¸®ÅÏÇÑ´Ù. ÀÌ°ÍÀº connect()¸¦ È£ÃâÇϱâ Àü¿¡´Â ºó ¹®ÀÚ¿­À̳ª "0"À» ¸®ÅÏÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. µ¥ÀÌŸº£À̽º °ü¸®

°ü¸®ÀÚÀÇ shutdown, createdb, dropdb, reloadaclsÀº µ¥ÀÌŸº£À̽º ÇÚµéÀ» ÅëÇØ ¸ðµÎ Á¢±Ù °¡´ÉÇϸç, msqladminÀ¸·ÎÇÏ´Â °Í°ú µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î ±¸ÇöµÇ¾ú´Ù.

mSQL ¿£ÁøÀº ÀÌ·¯ÇÑ ¸í·ÉµéÀÌ µ¥ÀÌŸº£À̽º °ü¸®ÀÚ°¡ ¾Æ´Ñ ´Ù¸¥ »ç¿ëÀÚ¿¡ÀÇÇØ È£ÃâµÇ´Â °ÍÀ» Çã¿ëÇÏÁö ¾Ê´Â´Ù. µû¶ó¼­ À̵éÁß Çϳª¸¦ »ç¿ëÇÒ¶§¿¡´Â È®½ÇÇÏ°Ô ¸®ÅÏ°ú ¿À·ùÄڵ带 °Ë»çÇØ¾ß ÇÑ´Ù. StudlyCaps

ÆÞ ÇÁ·Î±×·¡¸Ó´Â º¸Åë ListTables¸¦ ÀÔ·ÂÇϱ⠺¸´Ù´Â list_tables³ª listtables·Î ÀÔ·ÂÇϱ⸦ ÁÁ¾ÆÇÑ´Ù. mSQL API´Â ¾îµð¿¡¼­µç StudlyCaps¸¦ »ç¿ëÇϸç, MsqlPerlÀÇ ÀÌÀü ¹öÀüµµ ¸¶Âù°¡Áö ÀÌ´Ù. $VERSION 1.06¿¡¼­ ºÎÅÍ ¸ðµç ¸Þ¼Òµå´Â ³»ºÎÀûÀ¸·Î ¼Ò¹®ÀÚ ÀÌÁö¸¸ ¿øÇÏ´Â ´ë·Î ¾µ ¼öÀÖ´Ù. ´ë¼Ò¹®ÀÚ´Â ¹«½ÃµÇ¸ç, °¡µ¶¼ºÀ» °³¼±ÇϱâÀ§ÇØ ¹ØÁÙÀ» »ç¿ëÇß´Ù.

¼­·Î´Ù¸¥ ¸Þ¼Òµå ¸íÀ» »ç¿ëÇÏ´Â ´ë°¡´Â ¹«½ÃÇÒ¸¸ÇÏ´Ù. ¾Ë·ÁÁø À̸§À¸·Î º¯È¯µÉ ¼ö ÀÖ´Â ÀÓÀÇÀÇ ¸Þ¼Òµå ¸íÀº ÀÏ´Ü ÇÁ·Î±×·¥ ³»¿¡¼­ Á¤Àǵǰí, ÀÌ ÇÁ·Î±×·¥ÀÌ Á¾·áµÉ¶§±îÁö º°¸íÀ» À¯ÁöÇÒ °ÍÀÌ´Ù. ÀÚÀ¯·Ó°Ô fetch_row³ª connenT ¶Ç´Â ÀÌÀü ÇÁ·Î±×·¥Ã³·³ ListDBs·Î »ç¿ëÇصµ µÈ´Ù. ¹°·Ð ÀÌ·¯ÇÑ °ÍµéÀº °è¼Ó µ¿ÀÛÇÑ´Ù.



´ÙÀ½±Û: Á¦ 9°­ - msqlperl - relshow ±¸Çö (7137)1996-05-09
ÀÌÀü±Û: Á¦ 7°­ - mSQL - ½Ã½ºÅÛ º¯¼ö (7601)1996-05-07

¼¼»ó»ç´Â À̾߱â



RSS ±¸µ¶ (À͸í | ȸ¿ø | °­Á | Æ÷·³)
(C) 1996 ~ 2017 QAOS.com All rights reserved.