<?php
/**
 * Применение ON DUPLICATE KEY
 * автор: Nc_Soft
 * 01.11.08
 */
/*
Допустим, у нас имеется таблица online юзеров, вот такая:
id | time
id - первичный или укальный ключ
нам надо обновлять время последнего пребывания юзера на сайте, либо добавить запись  в таблицу
*/
//Как это обычно делают в 2 запроса (НЕПРАВИЛЬНО!)
if (false===mysql_query("INSERT INTO online SET id='{$_SESSION['id']}', time=NOW() "))
{
	//если предыдущий запрос не прошел, то запись в таблице с ключом id уже есть, обновляем
	mysql_query("UPDATE online SET time=NOW() WHERE id='{$_SESSION['id']}' ");
}
//а теперь покажем как сделать правильно
mysql_query("INSERT INTO online SET id='{$_SESSION['id']}', time=NOW() ON DUPLICATE KEY UPDATE time=NOW() ");
/*
Как видите, применение ON DUPLICATE KEY позволяет уменьшить число запросов к бд
*/