Соответствие адреса электронной почты в MySQL (PHP) не работает - из PayPal IPN - PullRequest
0 голосов
/ 19 июля 2011

День новичка.

По какой-то причине это работает:

// check for user in db
$result = $connector->query('SELECT username FROM wallart_users 
                             WHERE username ="test@testmail.com");

if (mysql_num_rows($result) == 0) {
  ////// ADD NEW USER

Но это не так:

$payer_email = mysql_real_escape_string($payer_email);
// check for user in db
$result = $connector->query('SELECT username FROM wallart_users 
  WHERE username ='.$payer_email);

if (mysql_num_rows($result) == 0) {
  ////// NEW USER

Первый соответствует и отправляетдалее вниз по странице.
Второй не соответствует (с escape-кодом или без него) и пытается создать нового пользователя с такими же учетными данными (затем происходит сбой, так как пользователь уже существует).
Адрес электронной почтыPayPal отправляет всегда одинаково, и база данных содержит правильный адрес.
Я записал оба адреса в файл журнала во время процесса, и они выглядят одинаково.

Ответы [ 3 ]

0 голосов
/ 19 июля 2011

Этот код

$result = $connector->query('SELECT username FROM wallart_users 
WHERE username ='.$payer_email);

Должно быть

$result = $connector->query("SELECT username FROM wallart_users 
WHERE username ='$payer_email' ");
0 голосов
/ 19 июля 2011

Не думаете ли вы, что делаете что-то неправильно со вторым запросом?Вы должны изменить свой запрос следующим образом

$result = $connector->query('SELECT username FROM wallart_users WHERE username ="'.$payer_email.'"');
0 голосов
/ 19 июля 2011
'SELECT username FROM wallart_users WHERE username ="'.$payer_email.'"';
...