05.01.2006, 13:13
общий
это ответ
Здравствуйте, XMF!
Вы зря наезжаете на Stamma. В данной ситуации он однозначно прокомментировал Вашу заморочку. Вы не указали тип БД. Это первое. Может у Вас Oracle. А второе, это то, что если бы, как Вы говорите, нормально шарили в БД, то не задавали бы таких вопросов как этот. Если у Вас не плоские файлы, то все современные БД работают с разделением времени. Вы можете хоть тысячу раз за секунду вызывать. Ищите ошибку в скриптах и настройках. Если у Вас плоские файлы, (которые к Вашему сведению работают, значительно быстрее БД, при больших объёмах данных, но имеют гораздо более сложный специализированный интерфейс; Google, например, не использует БД), то смотрите пример в приложении. Пример взят из книги Девида Скляра и Адама Трахтенберга "PHP-Сборник рецептов". Удачи.
Приложение:
$data_file = ‘/tmp/data‘;// open the file for reading and writing$fh = fopen($data_file,‘a+‘) or die($php_errormsg);rewind($fh) or die($php_errormsg);// get an exclusive lock on the file flock($fh,LOCK_EX) or die($php_errormsg);// read in and unserialize the data$serialized_data = fread($fh,filesize($data_file)) or die($php_errormsg);$data = unserialize($serialized_data);/* * do whatever you need to with $data ... */// reserialize the data $serialized_data = serialize($data);// clear out the filerewind($fh) or die($php_errormsg);ftruncate($fp,0) or die($php_errormsg);// write the data back to the file and release the lock if (-1 == (fwrite($fh,$serialized_data))) { die($php_errormsg); }fflush($fh) or die($php_errormsg);flock($fh,LOCK_UN) or die($php_errormsg);fclose($fh) or die($php_errormsg);