PERL - MySQL Query
Executing a query using the MySQL module is a two step process - very
 straight forward. We define a query in the form of a scalar variable 
then call upon that variable using our connection script and the 
query function.
perlmysqlquery.pl:
# DEFINE A MySQL QUERY
$myquery = "INSERT INTO $tablename 
(id, product, quantity) 
VALUES (DEFAULT,'pineapples','15')";
# EXECUTE THE QUERY FUNCTION
$execute = $connect->query($myquery);
 
PERL - MySQL Insert Query
Here we introduce the 
affectedrow() function along with the 
insertid()
 function. You can probably guess what the affected rows function does 
but insertid is unique. Inserid() returns the 'id' of the last inserted 
row, that is it will return an id if you have an id field set up to 
auto-increment in your MySQL table.
perlinsertquery.pl:
#!/usr/bin/perl
use Mysql;
print "Content-type: text/html \n\n";
# MYSQL CONFIG VARIABLES
$host = "localhost";
$database = "store";
$tablename = "inventory";
$user = "username";
$pw = "password";
# PERL MYSQL CONNECT()
$connect = Mysql->connect($host, $database, $user, $pw);
# SELECT DB
$connect->selectdb($database);
# DEFINE A MySQL QUERY
$myquery = "INSERT INTO 
$tablename (id, product, quantity) 
VALUES (DEFAULT,'pineapples','15')";
# EXECUTE THE QUERY FUNCTION
$execute = $connect->query($myquery);
# AFFECTED ROWS
$affectedrows = $execute->affectedrows($myquery);
# ID OF LAST INSERT
$lastid = $execute->insertid($myquery);
print $affectedrows."<br />";
print $lastid."<br />";
 
These functions could be run without defining them as scalar variables as well.
PERL - MySQL SELECT Query
Queries that use the 
SELECT clause are a little more exciting. Here we introduce two new functions, the 
numrows() function and the 
numbfields()
 function. Both of these do exactly as they say, one fetches the number 
of rows returned with as the query executes while the other fetches the 
number of fields returned.
easyselectfunctions.pl:
#!/usr/bin/perl
use Mysql;
# HTTP HEADER
print "Content-type: text/html \n\n";
# MYSQL CONFIG VARIABLES
$host = "localhost";
$database = "store";
$tablename = "inventory";
$user = "username";
$pw = "password";
# PERL MYSQL CONNECT()
$connect = Mysql->connect($host, $database, $user, $pw);
# SELECT DB
$connect->selectdb($database);
# DEFINE A MySQL QUERY
$myquery = "SELECT * FROM $tablename";
# EXECUTE THE QUERY
$execute = $connect->query($myquery);
$rownumber = $execute->numrows();
$fieldnumber = $execute->numfields();
# PRINT THE RESULTS
print $rownumber."<br />";
print $fieldnumber."<br />";
 
Two numbers should be printed to your web browser.
PERL - MySQL fetchrow()
The 
fetchrow() function does exactly as it says it does, it 
goes out and fetches a row that matches your MySQL Query. An array is 
returned and each element represents a column value for the fetched row.
 If the query is intended to return multiple rows, 
fetchrow() must be called again and again. This is easily accomplished with a 
while loop.
fetchrow.pl:
#!/usr/bin/perl
use Mysql;
print "Content-type: text/html \n\n";
# MYSQL CONFIG VARIABLES
$host = "localhost";
$database = "store";
$tablename = "inventory";
$user = "username";
$pw = "password";
# PERL MYSQL CONNECT()
$connect = Mysql->connect($host, $database, $user, $pw);
# SELECT DB
$connect->selectdb($database);
# DEFINE A MySQL QUERY
$myquery = "SELECT * FROM $tablename";
# EXECUTE THE QUERY FUNCTION
$execute = $connect->query($myquery);
# HTML TABLE
print "<table border='1'><tr>
<th>id</th>
<th>product</th>
<th>quantity</th></tr>";
# FETCHROW ARRAY
while (@results = $execute->fetchrow()) {
 print "<tr><td>"
 .$results[0]."</td><td>"
 .$results[1]."</td><td>"
 .$results[2]."</td></tr>";
}
print "</table>";
 
 
0 comments:
Post a Comment