Применение ON DUPLICATE KEY

<?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 позволяет уменьшить число запросов к бд
*/