Обновить значение таблицы Mysql внутри оператора if else

0

Я запускаю $ search query, который возвращает no. строк и использование оператора if Else

If (no. of rows>0{
Update The row where symbol=123;
}else{
Insert new row
}

Я могу успешно выполнить запрос. У меня есть столбец со значением (идентификатор (основной), имя и символ). Я хотел бы обновить значение строки, если символ = 123; и вставьте, если оно отличается от 123.

Я могу вставить новую строку, когда я ввожу другой символ, но не могу обновить значение, хотя выполняется успешно, если символ № не совпадает.

Вот мой код

$sql="SELECT * FROM entrance WHERE symbol='15369-2017-02'";
$STH = $db->prepare($sql);
$STH->execute(array(symbol));
$User = $STH->fetch();

if (!empty($User)){

$sql = "UPDATE entrance SET name ='Sagar Rawal'
WHERE symbol='15369-2017-02'";
$q = $db->prepare($sql);
$q->execute($sql);
}
else{
   $sql = "INSERT INTO entrance(name,symbol) VALUES (:a,:b)";
   $q = $db->prepare($sql);
   $q->execute(array(':a'=>$a,':b'=>$b));

}

Но когда я запускаю из командной строки Mysql ниже кода

UPDATE entrance SET name="Ritish Karki" WHERE symbol="15369-2017-02"

Затем значение успешно изменилось. Любая помощь?

  • 1
    where symbol=15369-2017-02 сравнивает symbol с 15369-2017-02 = 13350 . Должен быть where symbol='15369-2017-02'
  • 0
    @ Ник я тоже использовал, но это тоже не работает .. Я тоже редактировал свой вопрос с тем же подходом.
Показать ещё 8 комментариев
Теги:

1 ответ

0

Вы могли бы использовать что-то вроде этого запроса INSERT... ON DUPLICATE KEY UPDATE Синтаксис

INSERT INTO entrance(name,symbol) VALUES ($a,$b) ON DUPLICATE KEY UPDATE name = 'Sagar Rawal';

Почему ваш нынешний подход не работает? Смотрите комментарий Ника под вашим вопросом

  • 0
    но символ не является первичным ключом. Идентификатор является первичным ключом. Но я хочу, чтобы символ был таким же, так как я использую в качестве номера ролла, который должен быть Первичным ключом. тогда как я могу использовать ваш подход?
  • 0
    @redface что насчет этой строки $STH->execute(array(symbol)); смотрите внимательно, вы не связываете символ правильно
Показать ещё 1 комментарий

Ещё вопросы

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