0

Pay Pal サブスクリプション IPN の mc_gross 変数を確認しようとしています。

次のコードは、amount_data の "Resource 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); 
    }
4

2 に答える 2

1

$amount_data を取得するために使用 mysql_fetch_row()します。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を確認してください

于 2012-09-25T14:45:05.743 に答える
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); 
    }
于 2012-09-26T10:43:52.313 に答える