Я выполняю следующее, просто чтобы проверить, правильно ли я понял эту часть сценария, у меня уже есть запись, которая выглядит следующим образом в базе данных mysql: если в своей форме я помещаю вышеуказанную информацию в каждыйиз полей формы и нажмите «отправить», что должно произойти, если она выберет запись, равную опубликованному имени и имени формы электронной почты, и обновит запись с тем же именем и именем формы электронной почты, указав новую дату в поле [datesent] в форме.
Итак, я запускаю следующее:
<?php
$query = mysql_query("IF EXISTS(SELECT * FROM hqfjt_email_history WHERE leadname='$_POST[leadname]' AND emailformname='$_POST[emailformname]')
THEN UPDATE hqfjt_email_history (datesent) VALUES ('$_POST[datesent]') WHERE emailformname='$_POST[emailformname]' AND leadname='$_POST[leadname]'
") or die(mysql_error());
?>
, но вместо обновления этого поля я получаю сообщение об ошибке:
В вашем синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с «ЕСЛИ СУЩЕСТВУЕТ» (ВЫБРАТЬ * ОТ hqfjt_email_history ГДЕ leadname = «Брайан Кокс» И электронная почта »в строке 1
Кстати, я не могу использоватьметод индекса без повторяющихся ключей для обновления записи по разным причинам, поэтому мне нужно идентифицировать запись по двум полям: имя_почты и имя электронной почты.
Я не вижу причины, по которой вышеприведенный запрос не удался, кроме моегоплохое кодирование (вероятно, проблема), поскольку в БД есть только одна запись с этими двумя полями = true.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Спасибодля справки всем, теперь это правильно, если я хочу вставить в пустую запись? Я не уверен, как очистить мою часть, которую я добавил в конце, хотя??
<?php
$sql = "IF EXISTS (
SELECT * FROM hqfjt_email_history
WHERE leadname= '" . mysql_real_escape_string($_POST['leadname']) . "'
AND emailformname = '" . mysql_real_escape_string($_POST['emailformname']) . "'
)
THEN
UPDATE hqfjt_email_history
SET datesent = '" . mysql_real_escape_string($_POST['datesent']) . "'
WHERE emailformname = '" . mysql_real_escape_string($_POST['emailformname']) . "'
AND leadname = '" . mysql_real_escape_string($_POST['leadname']) . "'
ELSE
INSERT INTO hqfjt_email_history
(id, leadname, emailformname, datesent) VALUES ('$_POST[id]','$_POST[leadname]','$_POST[emailformname]','$_POST[datesent]')";
$query = mysql_query($sql) or die(mysql_error());
?>