Обновите строку, если значение соответствует другому. Вставьте новую строку.

0

Я создаю таблицу для студента, чтобы вставить для вступительного экзамена со следующим значением (идентификатор (первичный ключ), имя, символ, адрес), а затем они будут печатать пропустить карту.

Если они дважды вводят свое значение и если уже существует строка для того же значения символа, я хотел бы обновить имя и адрес до нового значения, если оно есть, вместо вставки нового.

Как мне это сделать..?

Моя база данных Mysql

$name = $_POST['name'];
$symbol = $_POST['symbol'];
$address = $_POST['address'];



$sql = "
IF NOT EXISTS (SELECT * FROM entrance WHERE symbol = :symbol)
INSERT INTO entrance(
name,
symbol,
address) VALUES(:name,:symbol,:address)
ELSE
 UPDATE entrance SET name = :name, address = :address WHERE symbol = 
:symbol
";
$q = $db->prepare($sql);
$q->execute(array(':name'=>$a,':symbol'=>$symbol,':address'=>$address,))
Теги:

2 ответа

0

Вы можете работать с IF NOT EXISTS в вашем SQL.

IF NOT EXISTS (SELECT * FROM entrance WHERE symbol = :symbol)
  INSERT INTO entrance(
    name,
    symbol,
    address) VALUES(:name,:symbol,:address)
ELSE
  UPDATE entrance SET name = :name, address = :address WHERE symbol = :symbol
  • 0
    Я отредактировал свой вопрос, как вы предложили ... это правильная последовательность?
  • 0
    Да. Это должно работать. Пожалуйста, измените работу с вопросом, чтобы другие люди с таким же вопросом могли разобраться в этой теме. Спасибо!
Показать ещё 1 комментарий
0

Сначала проверьте, есть ли данные в базе данных, используя запрос выбора

$select = "SELECT * FROM entrance WHERE symbol='$symbol'";

Если запрос select возвращает строки> 0, тогда запустите запрос на обновление, иначе вставьте запрос

  • 0
    @ Ромэн, не могли бы вы дать мне некоторые детали, как предложил Бастиан, я отформатировал свой код, но теперь он затенен ... вот изображение ibb.co/jGSZxxT . Я также обновил свою оценку согласно ответу, но это не работает, что, я думаю, если заявление IF не должно быть таким.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню