Я создаю таблицу для студента, чтобы вставить для вступительного экзамена со следующим значением (идентификатор (первичный ключ), имя, символ, адрес), а затем они будут печатать пропустить карту.
Если они дважды вводят свое значение и если уже существует строка для того же значения символа, я хотел бы обновить имя и адрес до нового значения, если оно есть, вместо вставки нового.
Как мне это сделать..?
Моя база данных 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,))
Вы можете работать с 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
Сначала проверьте, есть ли данные в базе данных, используя запрос выбора
$select = "SELECT * FROM entrance WHERE symbol='$symbol'";
Если запрос select возвращает строки> 0, тогда запустите запрос на обновление, иначе вставьте запрос