Уважаемые форумчане! Требуется ваша помощь!
Подскажите, как правильно? Задача простая, нужно записать визит пользователя в базу данных.
- Подключаемся к базе данных.
- Обновляем запись о посетителе в таблице.
- А вдруг посетитель впервые и его записи нет, значит вставляем запись.
- Для развёртывания (для первого запуска): А вдруг таблицы нет, значит создаём таблицу.
Вопрос 1: Беспокоит то, что каждый раз при обновлении (update) куча холостых операций (create, insert), может это как то иначе решается, подскажите.
Вопрос 2: А как вы решаете задачи которые требуются однократно при первом запуске?
Вопрос 3: Подключение к базе данных. Может в другой файл переместить? Но тогда при перемещении файла будут проблемы, а если оставить - то постоянно открывается и закрывается подключение к базе данных в разных файлах.
$db = new PDO('sqlite:file.sqlite');
$db -> exec("CREATE TABLE IF NOT EXISTS 'tableName' (
id PRIMARY KEY AUTOINCREMENT,
user TEXT UNIQUE NOT NULL,
visitCounter INTEGER DEFAULT '0'
)");
$db -> exec("INSERT OR IGNORE INTO 'tableName' (user) VALUES ('user1')");
$db -> exec("UPDATE 'tableName' SET visitCounter = visitCounter + 1 WHERE user = 'user1'");
unset($db);