проверить, если данные уже существуют - PullRequest
0 голосов
/ 14 января 2012

Как я могу проверить перед сохранением в mysql wether в массиве 1 переменных, уже существующих в моей базе данных.если $explode[$i] существует, переходите к следующему.если не существует, запустите приведенный ниже код!

Вот мой код в php:

$request_user_ids = $_GET['req'];
     $explode = explode(',',$request_user_ids);
     for ($i=0; $i<count($explode);$i++){

  $result = mysql_query("
          INSERT INTO fbinvite (memberid, fbsender, fbempfang, regdatum, fbreturn) 
          VALUES(NULL, '".$userid."', '".$explode[$i]."', NOW(), '0')");

Как мне сделать так, чтобы двойных вставок не было.

1 Ответ

2 голосов
/ 14 января 2012

Прежде всего сделайте соответствующий набор атрибутов первичным ключом или уникальным индексом таблицы.

Тогда у вас есть несколько вариантов:

  • вслепую используйте INSERT IGNORE INTO fbinvite ..., если вы просто хотите игнорировать дублирующиеся данные ИЛИ
  • проверить, существует ли запись: SELECT memberid FROM fbinvite WHERE some_attr1 = $explode[...] AND some_attr2 = $explode[...]; и продолжить соответственно:
    • если запись не существует, вставьте ее в таблицу: INSERT INTO fbinvite ...
    • если запись существует:
      • показать сообщение пользователю ИЛИ
      • обновить существующую запись: UPDATE fbinvide ... WHERE ...
    • вставить ИЛИ обновить сразу: INSERT ... ON DUPLICATE KEY UPDATE ...
...