-
Hit Counter: DB Version
Ok, this is the database enabled version of the hit counter I posted yesterday.
Obviously you'll need to change the values of variables at the top to be specific to your requirements, like change the $username and $password values, and possibly comment out $dbtype = "pgsql" and uncomment $dbtype = "mysql" depending on which one you use (I use PostgreSQL, which is why my code always assumes pgsql but provides a commented-out option for mysql support.
As you can see, it's a little more involved than the file-based version, but it'll work on servers where file-based operations are not permitted (i.e. most public web servers).
Again, this version hasn't been tested (I've installed Apache and PHP now, but I haven't got round to installing PostgreSQL :( ) so it may or may not work, but it gives you the general idea of how such a hit counter might work.
PHP Code:
<?
/*
Hit Counter: Database Version
Andrew J. Bennieston
*/
require_once('DB.php');
// DB Connection Setup:
$username = "hitcount";
$password = "hitcount";
$host = "localhost";
$database = "phpstuff";
// Select DB Application:
// $dbtype = "mysql";
$dbtype = "pgsql";
// Connect to the DB:
$dsn = "$dbtype://$username:$password@$host/$database";
$db = DB::connect($dsn);
if (DB::isError($db))
{
die ($db->getMessage());
}
// Query the DB:
$sql = "SELECT hitcount.count FROM hitcount";
$q = $db->query($sql);
if (DB::isError($q))
{
die ($q->getMessage());
}
// Get DB Results to array $count
$count = $q->fetchRow();
// Set $counter to current value and increment
$counter = $count[0];
$counter++;
$oldcount = $count[0];
// Write the new count to the DB:
$sql = "UPDATE hitcount SET count=$counter WHERE count=$oldcount";
$q = $db->query($sql);
if ($db::isError($q))
{
die ($q->getMessage());
}
// Write the counter to the screen:
?>
<font size="5"><?= $counter ?></font>