2012-09-25 45 views
0

我正在嘗試驗證paypal訂閱IPN的mc_gross變量。試圖驗證PayPal支付金額 - MySQL IPN

以下代碼不斷給我amount_data的「Resource id#12」值。我試圖驗證的數字是0.05當用戶付款時放在表格中。變量$ id正確測試,並且payment_amount列中有數字(0.05) - 所以我不知道爲什麼它不能執行此查詢。我是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()返回只種源ID

$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); 
    }