PDA

Просмотр полной версии : начались глюки с базой на рнр


sergey24
16.09.2004, 21:29
Всем привет

Не успел толком протестить рейтинг как начались выявляться глюки :-)
первое из них самый актуальный

в конце счетщика стоит закрытие соеденения с базой mysql_close()

но ведать не всегда до этой команды доходит очередь

и частенько база подвисает
и пишет сообщение Too many connections
типа очень много соеденений

нарузка на базу маленькая около 20 000 хитов в сутки

как из этого положения выйти?
вот исходник ядра статистики:

include 'connect.php';
include 'function_top.php';

if (getenv('HTTP_X_FORWARDED_FOR'))
{
$ip=getenv('HTTP_X_FORWARDED_FOR');
}
{
$ip=getenv('REMOTE_ADDR');
}
$host = gethostbyaddr("$ip");
if (!$ip){$ip = "unknown";}
if (!$host){$host = "unknown";};

if (empty($id)){$id=2;};

$t2='ip'.$id;
$t1='iplog'.$id;
$date= date ("Ym.d");



$sql = mysql_query ("select * from ".$t2." where date = '$date'");
if (mysql_num_rows($sql)==0){
mysql_query ("insert into ".$t1."( date) values ('$date');");

};
page();
refer();

$sql = mysql_query ("select * from ".$t2." where date ='$date' AND basehost = '$ip'");


if (mysql_num_rows($sql)>0){ mysql_query ("update ".$t1." set hit = hit + 1 where date = '$date' "); mysql_query ("update ".$t2." set total = total + 1 where date = '$date' AND basehost='$ip' ");
}
else{
mysql_query ("insert into ".$t2." values ('$date', '$ip','$host','1');"); mysql_query ("update ".$t1." set hit = hit + 1, host = host + 1 where date = '$date' ");


countr();
hars();
browser();
os();
del();
update();

updatop();

};
mysql_close();

что по советуете?

nagash
17.09.2004, 00:45
mysql_connect \ mysql_pconnect???

sergey24
17.09.2004, 00:56
я делаю $db = mysql_connect("$HostName","$UserName","$Password") ;
mysql_select_db("$dbname",$db) or die(mysql_error());

Самурай
17.09.2004, 01:29
сережа, бросай ты вебдев...

мы же тебя специально предупредили , что б ты не совершал наших же ошибок....