⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000000.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;yyh&nbsp;(阿欢&amp;正在努力上进中......),&nbsp;信区:&nbsp;Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;MySQL&nbsp;&amp;&nbsp;mSQL&nbsp;Chapter&nbsp;10&nbsp;Perl&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Sat&nbsp;Sep&nbsp;18&nbsp;01:43:04&nbsp;1999)&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;<BR>MySQL&nbsp;&amp;&nbsp;mSQL&nbsp;&nbsp;<BR>By&nbsp;Randy&nbsp;Jay&nbsp;Yarger,&nbsp;George&nbsp;Reese&nbsp;&amp;&nbsp;Tim&nbsp;King&nbsp;&nbsp;<BR>1-56592-434-7,&nbsp;Order&nbsp;Number:&nbsp;4347&nbsp;&nbsp;<BR>504&nbsp;pages&nbsp;(est.),&nbsp;$34.95&nbsp;(est.)&nbsp;&nbsp;&nbsp;<BR>&nbsp;<BR>--------------------------------------------------------------------------------&nbsp;<BR>&nbsp;<BR>Chapter&nbsp;10&nbsp;Perl&nbsp;<BR>The&nbsp;Perl&nbsp;programming&nbsp;language&nbsp;has&nbsp;gone&nbsp;from&nbsp;a&nbsp;tool&nbsp;primarily&nbsp;used&nbsp;by&nbsp;Unix&nbsp;systems&nbsp;administrators&nbsp;to&nbsp;the&nbsp;most&nbsp;widely&nbsp;used&nbsp;development&nbsp;platform&nbsp;for&nbsp;the&nbsp;World&nbsp;Wide&nbsp;Web.&nbsp;Perl&nbsp;was&nbsp;not&nbsp;designed&nbsp;for&nbsp;the&nbsp;web,&nbsp;but&nbsp;its&nbsp;ease&nbsp;of&nbsp;use&nbsp;and&nbsp;powerful&nbsp;text&nbsp;handling&nbsp;&nbsp;<BR>abilities&nbsp;have&nbsp;made&nbsp;it&nbsp;a&nbsp;natural&nbsp;for&nbsp;CGI&nbsp;programming.&nbsp;Similarly,&nbsp;when&nbsp;mSQL&nbsp;first&nbsp;entered&nbsp;the&nbsp;scene,&nbsp;its&nbsp;extremely&nbsp;small&nbsp;footprint&nbsp;and&nbsp;execution&nbsp;time&nbsp;were&nbsp;very&nbsp;attractive&nbsp;to&nbsp;web&nbsp;developers&nbsp;who&nbsp;needed&nbsp;to&nbsp;serve&nbsp;thousands&nbsp;of&nbsp;transactions&nbsp;a&nbsp;day.&nbsp;MySQL,&nbsp;with&nbsp;&nbsp;<BR>its&nbsp;enhanced&nbsp;speed&nbsp;and&nbsp;capabilities&nbsp;provided&nbsp;an&nbsp;even&nbsp;greater&nbsp;incentive&nbsp;for&nbsp;web&nbsp;developers.&nbsp;Therefore,&nbsp;it&nbsp;was&nbsp;only&nbsp;natural&nbsp;that&nbsp;a&nbsp;Perl&nbsp;interface&nbsp;to&nbsp;both&nbsp;MySQL&nbsp;and&nbsp;mSQL&nbsp;was&nbsp;developed&nbsp;that&nbsp;allowed&nbsp;the&nbsp;best&nbsp;of&nbsp;both&nbsp;worlds.&nbsp;<BR>&nbsp;<BR>TIP:&nbsp;At&nbsp;the&nbsp;time&nbsp;of&nbsp;this&nbsp;writing&nbsp;there&nbsp;are&nbsp;two&nbsp;interfaces&nbsp;between&nbsp;MySQL&nbsp;and&nbsp;mSQL&nbsp;and&nbsp;Perl.&nbsp;The&nbsp;original&nbsp;consists&nbsp;of&nbsp;Mysql.pm&nbsp;and&nbsp;Msql.pm,&nbsp;custom&nbsp;interfaces&nbsp;that&nbsp;work&nbsp;only&nbsp;with&nbsp;MySQL&nbsp;and&nbsp;mSQL,&nbsp;respectively.&nbsp;The&nbsp;other,&nbsp;newer,&nbsp;interface&nbsp;is&nbsp;a&nbsp;plug-in&nbsp;for&nbsp;&nbsp;<BR>the&nbsp;Database&nbsp;Independent&nbsp;(DBI)&nbsp;set&nbsp;of&nbsp;modules.&nbsp;DBI&nbsp;is&nbsp;an&nbsp;attempt&nbsp;to&nbsp;provide&nbsp;a&nbsp;common&nbsp;Perl&nbsp;API&nbsp;for&nbsp;all&nbsp;database&nbsp;accesses&nbsp;and&nbsp;enable&nbsp;greater&nbsp;behind-the-scenes&nbsp;portability.&nbsp;The&nbsp;DBI&nbsp;interface&nbsp;has&nbsp;become&nbsp;the&nbsp;most&nbsp;robust&nbsp;and&nbsp;standard,&nbsp;and&nbsp;the&nbsp;makers&nbsp;of&nbsp;MySQL&nbsp;&nbsp;<BR>recommend&nbsp;that&nbsp;all&nbsp;work&nbsp;be&nbsp;done&nbsp;using&nbsp;DBI&nbsp;as&nbsp;development&nbsp;of&nbsp;the&nbsp;Mysql.pm&nbsp;and&nbsp;Msql.pm&nbsp;modules&nbsp;has&nbsp;ceased.&nbsp;However,&nbsp;many&nbsp;legacy&nbsp;systems&nbsp;still&nbsp;use&nbsp;these&nbsp;modules,&nbsp;so&nbsp;both&nbsp;will&nbsp;be&nbsp;covered&nbsp;here.&nbsp;<BR>&nbsp;<BR>DBI&nbsp;<BR>The&nbsp;recommended&nbsp;method&nbsp;for&nbsp;accessing&nbsp;MySQL&nbsp;and&nbsp;mSQL&nbsp;databases&nbsp;from&nbsp;Perl&nbsp;is&nbsp;the&nbsp;DBD/DBI&nbsp;interface.&nbsp;DBD/DBI&nbsp;stands&nbsp;for&nbsp;DataBase&nbsp;Dependent/DataBase&nbsp;Independent.&nbsp;The&nbsp;name&nbsp;arises&nbsp;from&nbsp;the&nbsp;two-layer&nbsp;implementation&nbsp;of&nbsp;the&nbsp;interface.&nbsp;At&nbsp;the&nbsp;bottom&nbsp;is&nbsp;the&nbsp;&nbsp;<BR>database&nbsp;dependent&nbsp;layer.&nbsp;Here,&nbsp;modules&nbsp;exist&nbsp;for&nbsp;each&nbsp;type&nbsp;of&nbsp;database&nbsp;accessible&nbsp;from&nbsp;Perl.&nbsp;On&nbsp;top&nbsp;of&nbsp;these&nbsp;database&nbsp;dependent&nbsp;modules&nbsp;lies&nbsp;a&nbsp;database&nbsp;independent&nbsp;layer.&nbsp;This&nbsp;is&nbsp;the&nbsp;interface&nbsp;that&nbsp;you&nbsp;use&nbsp;to&nbsp;access&nbsp;the&nbsp;database.&nbsp;The&nbsp;advantage&nbsp;of&nbsp;this&nbsp;&nbsp;<BR>scheme&nbsp;is&nbsp;that&nbsp;the&nbsp;programmer&nbsp;only&nbsp;has&nbsp;to&nbsp;learn&nbsp;one&nbsp;API,&nbsp;the&nbsp;database&nbsp;independent&nbsp;layer.&nbsp;Every&nbsp;time&nbsp;a&nbsp;new&nbsp;database&nbsp;comes&nbsp;along,&nbsp;someone&nbsp;needs&nbsp;only&nbsp;to&nbsp;write&nbsp;a&nbsp;DBD&nbsp;module&nbsp;for&nbsp;it&nbsp;and&nbsp;it&nbsp;will&nbsp;be&nbsp;accessible&nbsp;to&nbsp;all&nbsp;DBD/DBI&nbsp;programmers.&nbsp;<BR>&nbsp;<BR>As&nbsp;with&nbsp;all&nbsp;Perl&nbsp;modules,&nbsp;you&nbsp;must&nbsp;use&nbsp;DBI&nbsp;to&nbsp;get&nbsp;access:&nbsp;<BR>&nbsp;<BR>#!/usr/bin/perl&nbsp;-w&nbsp;<BR>&nbsp;&nbsp;<BR>use&nbsp;strict;&nbsp;<BR>use&nbsp;CGI&nbsp;qw(:standard);&nbsp;<BR>use&nbsp;DBI;&nbsp;<BR>TIP:&nbsp;When&nbsp;running&nbsp;any&nbsp;MySQL/mSQL&nbsp;Perl&nbsp;programs,&nbsp;you&nbsp;should&nbsp;always&nbsp;include&nbsp;the&nbsp;-w&nbsp;command&nbsp;line&nbsp;argument.&nbsp;With&nbsp;this&nbsp;present,&nbsp;DBI&nbsp;will&nbsp;redirect&nbsp;all&nbsp;MySQL&nbsp;and&nbsp;mSQL&nbsp;specific&nbsp;error&nbsp;messages&nbsp;to&nbsp;STDERR&nbsp;so&nbsp;that&nbsp;you&nbsp;can&nbsp;see&nbsp;any&nbsp;database&nbsp;errors&nbsp;without&nbsp;checking&nbsp;&nbsp;<BR>for&nbsp;them&nbsp;explicitly&nbsp;in&nbsp;your&nbsp;program.&nbsp;<BR>&nbsp;<BR>All&nbsp;interactions&nbsp;between&nbsp;Perl&nbsp;and&nbsp;MySQL&nbsp;and&nbsp;mSQL&nbsp;are&nbsp;conducted&nbsp;through&nbsp;what&nbsp;is&nbsp;known&nbsp;as&nbsp;a&nbsp;database&nbsp;handle.&nbsp;The&nbsp;database&nbsp;handle&nbsp;is&nbsp;an&nbsp;object--represented&nbsp;as&nbsp;a&nbsp;scalar&nbsp;reference&nbsp;in&nbsp;Perl--that&nbsp;implements&nbsp;all&nbsp;of&nbsp;the&nbsp;methods&nbsp;used&nbsp;to&nbsp;communicate&nbsp;with&nbsp;the&nbsp;&nbsp;<BR>database.&nbsp;You&nbsp;may&nbsp;have&nbsp;as&nbsp;many&nbsp;database&nbsp;handles&nbsp;open&nbsp;at&nbsp;once&nbsp;as&nbsp;you&nbsp;wish.&nbsp;You&nbsp;are&nbsp;limited&nbsp;only&nbsp;by&nbsp;your&nbsp;system&nbsp;resources.&nbsp;The&nbsp;connect()&nbsp;method&nbsp;uses&nbsp;a&nbsp;connection&nbsp;format&nbsp;of&nbsp;DBI:servertype:database:hostname:port&nbsp;(hostname&nbsp;and&nbsp;port&nbsp;and&nbsp;optional),&nbsp;with&nbsp;&nbsp;<BR>additional&nbsp;arguments&nbsp;of&nbsp;username&nbsp;and&nbsp;password&nbsp;to&nbsp;create&nbsp;a&nbsp;handle:&nbsp;<BR>&nbsp;<BR>my&nbsp;$dbh&nbsp;=&nbsp;DBI-&gt;connect('DBI:mysql:mydata',&nbsp;undef,&nbsp;undef);&nbsp;<BR>my&nbsp;$dbh&nbsp;=&nbsp;DBI-&gt;connect('DBI:mSQL:mydata:myserver',&nbsp;undef,&nbsp;undef);&nbsp;<BR>my&nbsp;$dbh&nbsp;=&nbsp;DBI-&gt;connect('DBI:mysql:mydata','me','mypass');&nbsp;<BR>The&nbsp;servertype&nbsp;attribute&nbsp;is&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;DBD&nbsp;database-specific&nbsp;module,&nbsp;which&nbsp;in&nbsp;our&nbsp;case&nbsp;will&nbsp;be&nbsp;either&nbsp;&quot;mysql&quot;&nbsp;or&nbsp;&quot;mSQL&quot;&nbsp;(note&nbsp;capitalization).&nbsp;The&nbsp;first&nbsp;version&nbsp;creates&nbsp;a&nbsp;connection&nbsp;to&nbsp;the&nbsp;MySQL&nbsp;server&nbsp;on&nbsp;the&nbsp;local&nbsp;machine&nbsp;via&nbsp;a&nbsp;Unix-style&nbsp;socket.&nbsp;&nbsp;<BR>This&nbsp;is&nbsp;the&nbsp;most&nbsp;efficient&nbsp;way&nbsp;to&nbsp;communicate&nbsp;with&nbsp;the&nbsp;database&nbsp;and&nbsp;should&nbsp;be&nbsp;used&nbsp;if&nbsp;you&nbsp;are&nbsp;connecting&nbsp;to&nbsp;a&nbsp;local&nbsp;server.&nbsp;If&nbsp;the&nbsp;hostname&nbsp;is&nbsp;supplied&nbsp;it&nbsp;will&nbsp;connect&nbsp;to&nbsp;the&nbsp;server&nbsp;on&nbsp;that&nbsp;host&nbsp;using&nbsp;the&nbsp;standard&nbsp;port&nbsp;unless&nbsp;the&nbsp;port&nbsp;is&nbsp;supplied&nbsp;as&nbsp;&nbsp;<BR>well.&nbsp;If&nbsp;you&nbsp;do&nbsp;not&nbsp;provide&nbsp;a&nbsp;username&nbsp;and&nbsp;password&nbsp;when&nbsp;connecting&nbsp;to&nbsp;a&nbsp;MySQL&nbsp;server,&nbsp;the&nbsp;user&nbsp;executing&nbsp;the&nbsp;program&nbsp;must&nbsp;have&nbsp;sufficient&nbsp;privileges&nbsp;within&nbsp;the&nbsp;MySQL&nbsp;database.&nbsp;The&nbsp;username&nbsp;and&nbsp;password&nbsp;should&nbsp;always&nbsp;be&nbsp;left&nbsp;undefined&nbsp;for&nbsp;mSQL&nbsp;&nbsp;<BR>databases.&nbsp;<BR>&nbsp;<BR>TIP:&nbsp;Perl&nbsp;5&nbsp;has&nbsp;two&nbsp;different&nbsp;calling&nbsp;conventions&nbsp;for&nbsp;modules.&nbsp;With&nbsp;the&nbsp;object-oriented&nbsp;syntax,&nbsp;the&nbsp;arrow&nbsp;symbol&nbsp;&quot;-&gt;&quot;&nbsp;is&nbsp;used&nbsp;to&nbsp;reference&nbsp;a&nbsp;method&nbsp;in&nbsp;a&nbsp;particular&nbsp;class&nbsp;(as&nbsp;in&nbsp;DBI-&gt;connect).&nbsp;Another&nbsp;method&nbsp;is&nbsp;the&nbsp;indirect&nbsp;syntax,&nbsp;in&nbsp;which&nbsp;the&nbsp;method&nbsp;&nbsp;<BR>name&nbsp;is&nbsp;followed&nbsp;by&nbsp;the&nbsp;class&nbsp;name,&nbsp;then&nbsp;the&nbsp;arguments.&nbsp;The&nbsp;last&nbsp;connect&nbsp;method&nbsp;above&nbsp;would&nbsp;be&nbsp;written&nbsp;as&nbsp;connect&nbsp;DBI&nbsp;'DBI:mysql:mydata',&nbsp;'me',&nbsp;'mypass'.&nbsp;Early&nbsp;versions&nbsp;of&nbsp;the&nbsp;Msql.pm&nbsp;used&nbsp;the&nbsp;indirect&nbsp;syntax&nbsp;exclusively&nbsp;and&nbsp;also&nbsp;enforced&nbsp;a&nbsp;specific&nbsp;&nbsp;<BR>method&nbsp;of&nbsp;capitalization&nbsp;inspired&nbsp;by&nbsp;the&nbsp;mSQL&nbsp;C&nbsp;API.&nbsp;Therefore,&nbsp;a&nbsp;lot&nbsp;of&nbsp;older&nbsp;MsqlPerl&nbsp;code&nbsp;will&nbsp;have&nbsp;lines&nbsp;in&nbsp;it&nbsp;like&nbsp;SelectDB&nbsp;$dbh&nbsp;'test'&nbsp;where&nbsp;a&nbsp;simple&nbsp;$dbh-&gt;selectdb('test')&nbsp;would&nbsp;do.&nbsp;If&nbsp;you&nbsp;haven't&nbsp;guessed,&nbsp;we&nbsp;are&nbsp;partial&nbsp;to&nbsp;the&nbsp;object-oriented&nbsp;&nbsp;<BR>syntax,&nbsp;if&nbsp;only&nbsp;because&nbsp;the&nbsp;arrow&nbsp;makes&nbsp;the&nbsp;relationship&nbsp;between&nbsp;class&nbsp;and&nbsp;method&nbsp;clear.&nbsp;<BR>&nbsp;<BR>Once&nbsp;you&nbsp;have&nbsp;connected&nbsp;to&nbsp;the&nbsp;MySQL&nbsp;or&nbsp;mSQL&nbsp;server,&nbsp;the&nbsp;database&nbsp;handle--$dbh&nbsp;in&nbsp;all&nbsp;of&nbsp;the&nbsp;examples&nbsp;in&nbsp;this&nbsp;section--is&nbsp;the&nbsp;gateway&nbsp;to&nbsp;the&nbsp;database&nbsp;server.&nbsp;For&nbsp;instance,&nbsp;to&nbsp;prepare&nbsp;an&nbsp;SQL&nbsp;query:&nbsp;<BR>&nbsp;<BR>$dbh-&gt;prepare($query);&nbsp;<BR>WARNING:&nbsp;When&nbsp;using&nbsp;mSQL&nbsp;you&nbsp;may&nbsp;select&nbsp;only&nbsp;one&nbsp;database&nbsp;at&nbsp;a&nbsp;time&nbsp;for&nbsp;a&nbsp;particular&nbsp;database&nbsp;handle.&nbsp;The&nbsp;mSQL&nbsp;server&nbsp;imposes&nbsp;this&nbsp;limit.&nbsp;However,&nbsp;you&nbsp;may&nbsp;change&nbsp;the&nbsp;current&nbsp;database&nbsp;at&nbsp;any&nbsp;time&nbsp;by&nbsp;calling&nbsp;connect&nbsp;again.&nbsp;With&nbsp;MySQL,&nbsp;you&nbsp;may&nbsp;include&nbsp;&nbsp;<BR>other&nbsp;databases&nbsp;in&nbsp;your&nbsp;query&nbsp;by&nbsp;explicitly&nbsp;naming&nbsp;them.&nbsp;In&nbsp;addition,&nbsp;with&nbsp;both&nbsp;MySQL&nbsp;and&nbsp;mSQL,&nbsp;if&nbsp;you&nbsp;need&nbsp;to&nbsp;access&nbsp;more&nbsp;than&nbsp;one&nbsp;database&nbsp;concurrently,&nbsp;you&nbsp;can&nbsp;create&nbsp;multiple&nbsp;database&nbsp;handles&nbsp;and&nbsp;use&nbsp;them&nbsp;side&nbsp;by&nbsp;side.&nbsp;<BR>&nbsp;<BR>Chapter&nbsp;21,&nbsp;Perl&nbsp;Reference,&nbsp;describes&nbsp;the&nbsp;full&nbsp;range&nbsp;of&nbsp;methods&nbsp;and&nbsp;variables&nbsp;supplied&nbsp;by&nbsp;DBI&nbsp;as&nbsp;well&nbsp;as&nbsp;Mysql.pm&nbsp;and&nbsp;Msql.pm.&nbsp;<BR>&nbsp;<BR>As&nbsp;an&nbsp;example&nbsp;of&nbsp;the&nbsp;use&nbsp;of&nbsp;DBI&nbsp;consider&nbsp;the&nbsp;following&nbsp;simple&nbsp;programs.&nbsp;In&nbsp;Example&nbsp;10-1,&nbsp;datashow.cgi&nbsp;accepts&nbsp;a&nbsp;hostname&nbsp;as&nbsp;a&nbsp;parameter--&quot;localhost&quot;&nbsp;is&nbsp;assumed&nbsp;if&nbsp;no&nbsp;parameter&nbsp;is&nbsp;present.&nbsp;The&nbsp;program&nbsp;then&nbsp;displays&nbsp;all&nbsp;of&nbsp;the&nbsp;databases&nbsp;available&nbsp;on&nbsp;that&nbsp;&nbsp;<BR>host.&nbsp;<BR>&nbsp;<BR>Example&nbsp;10-1:&nbsp;The&nbsp;CGI&nbsp;datashow.cgi&nbsp;shows&nbsp;all&nbsp;of&nbsp;the&nbsp;databases&nbsp;on&nbsp;a&nbsp;MySQL&nbsp;or&nbsp;mSQL&nbsp;server&nbsp;<BR>#!/usr/bin/perl&nbsp;-w&nbsp;<BR>&nbsp;&nbsp;<BR>use&nbsp;strict;&nbsp;<BR>use&nbsp;CGI&nbsp;qw(:standard);&nbsp;<BR>use&nbsp;CGI::Carp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Use&nbsp;the&nbsp;DBI&nbsp;module&nbsp;<BR>use&nbsp;DBI;&nbsp;<BR>CGI::use_named_parameters(1);&nbsp;<BR>&nbsp;&nbsp;<BR>my&nbsp;($server,&nbsp;$sock,&nbsp;$host);&nbsp;<BR>&nbsp;&nbsp;<BR>my&nbsp;$output&nbsp;=&nbsp;new&nbsp;CGI;&nbsp;<BR>$server&nbsp;=&nbsp;param('server')&nbsp;or&nbsp;$server&nbsp;=&nbsp;'';&nbsp;<BR>&nbsp;&nbsp;<BR>#&nbsp;Prepare&nbsp;the&nbsp;MySQL&nbsp;DBD&nbsp;driver&nbsp;<BR>my&nbsp;$driver&nbsp;=&nbsp;DBI-&gt;install_driver('mysql');&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my&nbsp;@databases&nbsp;=&nbsp;$driver-&gt;func($server,&nbsp;'_ListDBs');&nbsp;<BR>&nbsp;&nbsp;<BR>#&nbsp;If&nbsp;@databases&nbsp;is&nbsp;undefined&nbsp;we&nbsp;assume&nbsp;<BR>#&nbsp;that&nbsp;means&nbsp;that&nbsp;the&nbsp;host&nbsp;does&nbsp;not&nbsp;have&nbsp;<BR>#&nbsp;a&nbsp;running&nbsp;MySQL&nbsp;server.&nbsp;However,&nbsp;there&nbsp;could&nbsp;be&nbsp;other&nbsp;reasons&nbsp;<BR>#&nbsp;for&nbsp;the&nbsp;failure.&nbsp;You&nbsp;can&nbsp;find&nbsp;a&nbsp;complete&nbsp;error&nbsp;message&nbsp;by&nbsp;<BR>#&nbsp;checking&nbsp;$DBI::errmsg.&nbsp;<BR>if&nbsp;(not&nbsp;@databases)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;header,&nbsp;start_html('title'=&gt;&quot;Information&nbsp;on&nbsp;$server&quot;,&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'BGCOLOR'=&gt;'white');&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;&lt;&lt;END_OF_HTML;&nbsp;<BR>&lt;H1&gt;$server&lt;/h1&gt;&nbsp;<BR>$server&nbsp;does&nbsp;not&nbsp;appear&nbsp;to&nbsp;have&nbsp;a&nbsp;running&nbsp;mSQL&nbsp;server.&nbsp;<BR>&lt;/body&gt;&lt;/html&gt;&nbsp;<BR>END_OF_HTML&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(0);&nbsp;<BR>}&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;header,&nbsp;start_html('title'=&gt;&quot;Information&nbsp;on&nbsp;$host&quot;,&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'BGCOLOR'=&gt;'white');&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;&lt;&lt;END_OF_HTML;&nbsp;<BR>&lt;H1&gt;$host&lt;/h1&gt;&nbsp;<BR>&lt;p&gt;&nbsp;<BR>$host\'s&nbsp;connection&nbsp;is&nbsp;on&nbsp;socket&nbsp;$sock.&nbsp;<BR>&lt;p&gt;&nbsp;<BR>Databases:&lt;br&gt;&nbsp;<BR>&lt;UL&gt;&nbsp;<BR>END_OF_HTML&nbsp;<BR>foreach&nbsp;(@databases)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;&quot;&lt;LI&gt;$_\n&quot;;&nbsp;<BR>}&nbsp;<BR>print&nbsp;&lt;&lt;END_OF_HTML;&nbsp;<BR>&lt;/ul&gt;&nbsp;<BR>&lt;/body&gt;&lt;/html&gt;&nbsp;<BR>HTML&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -