$dbh =
DBI->connect("DBI:mysql:database=$database;host=$host","$user","$mysqlpassword",{'RaiseError'=>1});
 

$update_number = "UPDATE $table set total_clicked = total_clicked + 1";

$sth = $dbh->prepare("$update_number");
 
if (!$sth) { die "Error:" . $dbh->errstr . "\n"; } 
if (!$sth->execute) { die "Error:" . $sth->errstr . "\n"; } 

--Greg Johnson

-----Original Message-----
From: rory oconnor [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, March 20, 2002 10:44 AM
To: [EMAIL PROTECTED]
Subject: fast,efficient query for counting


I'm setting up some tracking stats for (opt-in) e-mail campaigns, and
one of the things I'm tracking is click-thrus.  I'm going to re-direct
traffic thru a script that will just count the number of clicks, and
store that number in a mysql table.

It needs to be fast and efficient, and I'm somewhat of a mysql newbie,
so I was wonderinf if there is any more efficient way to simply add a
number to the existing number in that table with mysql and perl.  My way
seems like a lot of code to do a little task.  Any help is appreciated!

# set up the db connection and SQL
$dbh =
DBI->connect("DBI:mysql:database=$database;host=$host","$user","$mysqlpassword",{'RaiseError'=>1});
 
$select_number = "select total_clicked from $table"; 

# actually execute the checking query
$sth = $dbh->prepare("$select_number"); 
if (!$sth) { die "Error:" . $dbh->errstr . "\n"; } 
if (!$sth->execute) { die "Error:" . $sth->errstr . "\n"; } 

# loop thru the query and set the result variables
while (my $ref = $sth->fetchrow_arrayref) { 
$total_clicked = $$ref[0];  
} 

# add 1 to total_clicked
$total_clicked=$total_clicked+1;

# update the number
$update_number = "UPDATE $table set total_clicked = $total_clicked";

# actually execute the update query
$sth = $dbh->prepare("$update_number"); 
if (!$sth) { die "Error:" . $dbh->errstr . "\n"; } 
if (!$sth->execute) { die "Error:" . $sth->errstr . "\n"; } 


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to