Examples: Perl/MySQL

Example #1

#!/usr/bin/perl
use DBI;
use strict;

$dbh = DBI->connect($dsn, $user, $password,{ RaiseError => 1, AutoCommit => 0 });
$sth = $dbh->prepare("SELECT name FROM cwhois WHERE start_num<=? AND end_num>=?");
@addr = split(/\./, $ENV{"REMOTE_ADDR"});
$num = (($addr[0]<<8 + $addr[1])<<8 + $addr[2])<<8 + $addr[3];
$sth->execute( $num, $num );
if (@row = $sth->fetchrow_array){
	print "Hello, you are visiting us from <B>".$row[0]."</B>";
}
$dbh->disconnect;

Example #2

#!/usr/bin/perl
use DBI;
use strict;
use CGI;

my $r=new CGI;
$r->import_names('req');
$dbh = DBI->connect($dsn, $user, $password,{ RaiseError => 1, AutoCommit => 0 });
$sth = $dbh->prepare("SELECT code,name FROM cwhois WHERE start_num<=? AND end_num>=?");
print <<EOF;
<form action="" method="POST">
<textarea name="address"></textarea><input type="submit" value="Request">
</form>
<table>
<tr>
<th>Address</th>
<th>Code</th>
<th>Country</th>
</tr>
EOF
if ($req["address"]) {
	my @addr_list = split(/\s+/s, $req["address"]);
	foreach @addr_list {
		@addr = split(/\./, $_);
		$num = (($addr[0]<<8 + $addr[1])<<8 + $addr[2])<<8 + $addr[3];
		$sth->execute( $num, $num );
		if (@row = $sth->fetchrow_array){
		print "<tr>
<td>$_</td>
<td>$row[0]</td>
<td>row[1]</td>
</tr>";
}
	}
}
print "</table>";