2012-09-25 3 views
0

Я пытаюсь проверить переменную mc_gross для IPN подписки Pay Pal.Пытается подтвердить сумму платежа PayPal - MySQL IPN

Следующий код продолжает давать мне значение «Ресурс id # 12» для суммы_данных. Число, которое я пытаюсь проверить, составляет 0,05, которое было помещено в таблицу, когда пользователь пошел платить. Переменная $ id проверяется правильно, а число (0,05) находится в столбце payment_amount, поэтому я не знаю, почему он не может выполнить этот запрос. Я новичок в MYSQL, поэтому прошу прощения за любые очевидные ошибки.

$payment_amount = mysql_real_escape_string($_POST['mc_gross']); 
    $amount_data = mysql_query ("SELECT * FROM subscriber WHERE payment_amount = '$payment_amount' AND id = '$id' "); 
    if ($amount_data != $_POST['mc_gross']) { 
     $errmsg .= "'mc_gross' does not match: "; 
     $errmsg .= $_POST['mc_gross']."\n"; 
     file_put_contents(dirname(__FILE__).'/logs/ipn.log',"\n###AMOUNT Don't MATCH Amount in Database='$payment_amount' Amount in requested='$amount_data'for id '$id'###\n",FILE_APPEND); 
    } 

ответ

1

Используйте mysql_fetch_row(), чтобы получить $ amount_data.Mysql_query() возвращает только Resouce идентификатор

$amount_data = mysql_query ("SELECT * FROM subscriber WHERE payment_amount = '$payment_amount' AND id = '$id' "); 
$row = mysql_fetch_row($amount_data); 

echo $row[0]; 

Проверить ссылку http://php.net/manual/en/function.mysql-fetch-row.php

+0

Но это возвращает массив. Не могу ли я просто выбрать ячейку, где сходятся идентификаторы payment_amount и id? – frankie

+0

@ user1390395 print_r ($ amount_data) и опубликовать результат –

0

Это то, что работает:

$payment_amount = mysql_real_escape_string($_POST['mc_gross']); 
    //$amount = mysql_query ("SELECT payment_amount FROM subscriber WHERE id = '$id'"); 
    $amount_data = mysql_query ("SELECT * FROM subscriber WHERE payment_amount = '$payment_amount' AND id = '$id' "); 
    $row = mysql_fetch_row($amount_data); 
    if ($row[6] != $_POST['mc_gross']) { 
     $errmsg .= "'mc_gross' does not match: "; 
     $errmsg .= $_POST['mc_gross']."\n"; 
     file_put_contents(dirname(__FILE__).'/logs/ipn.log',"\n###AMOUNT Don't MATCH Amount in Database='$row[6]' Amount in requested='$payment_amount' for id '$id'###\n",FILE_APPEND); 
    } 
Смежные вопросы