Страница 1 из 1

не заносит одни и теже данные в mysql из скрипта

Добавлено: 2010-04-06 10:14:23
Гость
есть php скрипт, который анализирует и заносит в бд mysql строки файла. Как принципиально сделать, чтобы при очередном запуске скрипта, не заносились одни и теже данные в mysq?
Поля в таблицы:месяц, день, час-минуты-секунды, отправитель, получатель.
Анализируемый файл - это лог-файл почтаря. Если что в mysql можно занести еще ID письма.

Re: не заносит одни и теже данные в mysql из скрипта

Добавлено: 2010-04-06 17:07:05
FiL
если одно из полей является первичным ключом, то оно и не добавится второй раз.

Re: не заносит одни и теже данные в mysql из скрипта

Добавлено: 2010-04-06 22:20:50
ProFTP
постройте архитекутуру таблиц, в прицнипе key можно добавить, да... но запросы должны быть привильными... иначе выдаст ошибку, что key не может быть продублирован

Re: не заносит одни и теже данные в mysql из скрипта

Добавлено: 2010-04-07 11:30:19
BlackCat
Во-первых, как было уже сказано, вам нужен ключ - для того, что бы MySQL мог определять одинаковые записи.
Во-вторых, есть пара вариантов, как выполнить дополнение без добавления дублирующихся данных.
1. "INSERT IGNORE ..." - добавить данные, дубликаты пропустить и не считать ошибкой.
2. "INSERT ... ON DUPLICATE KEY UPDATE" - обновить запись для дублирующегося значения ключа.
3. "REPLACE ..." - действует как предыдущий, но более выразительная запись (расширение MySQL стандарта SQL).

Подробности здесь:
http://dev.mysql.com/doc/refman/5.1/en/insert.html - INSERT
http://dev.mysql.com/doc/refman/5.1/en/replace.html - REPLACE

И по-традиции. Полезно посмотреть документацию по MySQL перед тем как задавать подобные вопросы.