1
Я пытаюсь вставить пару значений в таблицу с помощью PHP следующим образом:SQL Insert Если запись существует
$sql = "INSERT INTO table1(Field1, Field2)
Values (?, ?)
";
$stmt = $db-> prepare($sql);
$stmt->execute(array($field1, $field2));
$stmt->closeCursor();
поле 1 является первичным ключом.
Однако я хочу только вставить поле 1, если в таблице еще нет экземпляра этой записи для поля1 (например, если уже есть запись в поле1 как «оранжевый», она не должна вставлять еще один «оранжевый», если попросил сделать это).
Я чувствую, что это должно быть довольно прямолинейно, но ничего, что я пытаюсь, похоже, работает.
Так проверьте, если запись существует в первую очередь? – Kermit
@ RS-Я не прошу прокомментировать, так жаль опубликовать это как ответ Хммм, я попробовал, и он только вставил 1 строку, и все было пустым. Вот мой реальный код: INSERT INTO table1 (SKU, Title) \t \t \t SELECT (в) SKU, (в) Название ОТ двойственной \t \t \t ГДЕ НЕ СУЩЕСТВУЕТ (выберите 1 FROM table1 WHERE SKU = @ SKU) \t \t \t «; \t $ STMT = $ db-> подготовить ($ SQL); \t $ stmt-> выполнить (массив ($ SKU, $ ID)); \t $ stmt-> closeCursor(); $ SKU и $ id в $ stmt-> execute - это переменные, создаваемые в цикле foreach. – user2201011
@us er2201011: вы должны добавить тег, в котором указано, с какой RDBMS вы работаете. – jmoreno