I'm making a statistics system for a busy website. This site gets 2-3 hits per second during peak times, so the code that enters each visitor's stats into the database really needs to be very very efficient.
I would really appreciate it if anyone could give me any suggestions on this- i have fiddled with it a lot and it may be as good as it will get but hopefull i can squeeze a few more time savers in there 🙂
Here is the code:
<?php
mysql_connect("localhost", "*****", "****");
mysql_select_db("statistics");
// Referer
mysql_query("INSERT INTO referer VALUES('', '$Referer', '$CgiVars', '$day')") or die(mysql_error());
// Page
mysql_query("INSERT INTO page VALUES ('', '$PageName', '$day')") or die(mysql_error());
// Visit
mysql_query("INSERT INTO visit VALUES ('', '$REMOTE_ADDR', '$day')") or die(mysql_error());
// Resolution
mysql_query("INSERT INTO resolution VALUES('', '$ScreenRes', '$ColourDepth', '$day')") or die(mysql_error());
// Language
mysql_query("INSERT INTO language VALUES ('', '$Language', '$day')") or die(mysql_error());
// Browser
mysql_query("INSERT INTO browser VALUES('', '$BrowserName', '$BrowserVersion', '$day')") or die(mysql_error());
// Search Engine Keywords
if($CgiVars!=""){
$result= mysql_query("SELECT * FROM keywordinfo");
while($DATA=mysql_fetch_array($resut)){
if(substr_count($Referer, $DATA["Server"])>0){
$KeyStart=strpos($CgiVars, $DATA["StartChar"])+strlen($DATA["StartChar"]);
$KeyLength=strpos($CgiVars, $DATA["EndChar"], $KeyStart)-$KeyStart;
if ($KeyLength<1)
$KeyLength=strlen($CgiVars);
$Keyword=substr($CgiVars, $KeyStart, $KeyLength);
mysql_query("INSERT INTO keyword VALUES('', '$Keyword', '$Server', '$day')") or die(mysql_error());
}
}
}
?>
Thanks in advance.