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