Синтаксис PHP Mysql с использованием функций MD5 и NOW - PullRequest
1 голос
/ 06 января 2012

Учтите это:

$query = 'UPDATE ' . $table . 'SET optin_date = NOW() WHERE MD5(email_address) = ' . $email;

И я получаю эту ошибку:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= NOW() WHERE MD5(email_address) = c5dfd29d956b52c1ffa00ce4a06ab' at line 1

Я хочу сохранить текущую метку времени в столбце optin_date, используя в качестве значения функцию NOW() (я не уверен в том, как она работает), только если хэшированное письмо от строка запроса совпадает с хэшированным электронным письмом из базы данных, используя MD5() из mysql. У меня уже есть столбец с типом TIMESTAMP и значением по умолчанию CURRENT_TIMESTAMP.

Кроме того, мне нужно отправить письмо для подтверждения с использованием адреса электронной почты. Это возможно? Какой лучший способ сделать это?:

$recipient = 'SELECT * FROM ' . $table . ' WHERE MD5(email_address) = ' . $email;

Пожалуйста, помогите мне с синтаксисом, и если есть элегантный способ кодирования подписок по электронной почте (по крайней мере, функция обработки хэшированных писем), которыми вы можете поделиться, пожалуйста, не стесняйтесь. Спасибо.

Ответы [ 3 ]

1 голос
/ 06 января 2012

Попробуйте добавить эти `` вокруг имен таблиц и имен полей, также у вас отсутствует пробел после $ table

$query = 'UPDATE `' . $table . '` SET `optin_date` = NOW() WHERE MD5(`email_address`) = ' . $email;

, вам, вероятно, следует также использовать .mysql_real_escape_string ($ email) вместо просто.в конце - риск для безопасности

$query = 'UPDATE `' . $table . '` SET `optin_date` = NOW() WHERE MD5(`email_address`) = ' . mysql_real_escape_string($email);

Если, конечно, (как кажется) ваш $ email не будет хешем md5

0 голосов
/ 06 января 2012

попробуйте с этим:

$query = "UPDATE " . $table . "SET optin_date = CURRENT_TIMESTAMP 
          WHERE MD5(email_address) = '" . $email . "'";
0 голосов
/ 06 января 2012

у вас есть ошибка синтаксиса в в SQL запросе написать этот запрос

$query = "Update '".$table."' SET option_date = NOW() WHERE email_address ='".md5($email)."' "; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...