Я запускаю следующее просто в качестве теста, чтобы увидеть, правильно ли я понял эту часть скрипта, у меня уже есть запись, которая выглядит следующим образом в базе данных 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
Кстати, я не могу использовать метод индекса без дублирования ключа для обновления записи по разным причинам, поэтому мне нужно идентифицировать запись по двум полям leadname и emailformname.
Я не вижу причины, по которой приведенный выше запрос не будет работать, кроме моей плохой кодировки (вероятно, проблема), поскольку в БД есть только одна запись с этими двумя полями = 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());
?>