Как проверить, существует ли ключ, прежде чем пытаться вставить его в базу данных? - PullRequest
2 голосов
/ 15 июня 2011

Я извлекаю данные из календаря, и каждое событие в календаре имеет уникальную строку $EventID.Я использую PHP.

У меня есть база данных SQL со столбцом Event_ID.Эти идентификаторы являются строками.Мне нужно иметь возможность сравнить мой $EventID со столбцом Event_ID и поместить в базу данных, если его там нет.У меня есть первичный ключ, настроенный на автоинкремент в базе данных, и я подумал, что могу настроить цикл для их увеличения и сравнить каждый с $ EventID, но мне интересно, есть ли лучший способ - может быть,Функция PHP, о которой я не знаю?

У меня есть много кода, но в основном у меня есть:

<?php
$EventID = $event->id;  //This is the event ID

mysql_query("INSERT INTO myTable
              (Event_ID, Date_added, Date_edited)
             VALUES 
              ('$EventID', '$dateAdded', '$lastEdited')");

?>

Итак, как мне установить условие дляпроверьте все Event_ID, которые уже есть в базе данных, против $EventID?

Ответы [ 2 ]

3 голосов
/ 15 июня 2011

Вы можете просто пропустить запрос «Выбрать» и выполнить вместо него «INSERT IGNORE»:

mysql_query("INSERT IGNORE INTO myTable
              (Event_ID, Date_added, Date_edited)
             VALUES 
              ('$EventID', '$dateAdded', '$lastEdited')");

, это оставит существующие Event_id и просто добавит новые записи, если потребуется.

3 голосов
/ 15 июня 2011
$query = "SELECT * FROM  `myTable`  WHERE `Event_ID`='$EventID' ";
    $result = mysql_query($query);
if (!mysql_num_rows($result))
 // INSERT QUERY

Проверьте, присутствует ли идентификатор события, если не вставьте его

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...