变量没有从记录集PHP

时间:2016-06-01 13:40:12

标签: php mysql paypal

我是PHP的新手,这实际上是我在该语言中的第一次构建。

我正在尝试使用 IPN工具将PayPal集成到网站中。这部分工作得很好但是当我在完成支付后尝试验证PayPal中的第二个POST时,数据库会带回所需的结果,但是我已经分配了结果的customerID变量没有填充因此第二个查询没有完成并且在那时失败了。我把它缩小到下面显示的部分,我只能认为while循环中有一些错误从记录集中获取值。第一个查询中的其他变量是从POST回来的PayPal

分配的

代码如下:

$query = "SELECT customer.cust_id FROM customer INNER JOIN transaction ON transaction.cust_id = customer.cust_id WHERE last_name = '".$surname."' AND email = '".$payer_email."' AND paypal_txn_id = '".$txnID."'";

$results = mysqli_query($dbc, $query);

if($results){
    while($row = mysqli_fetch_array($results, MYSQLI_NUM)){

            $custID = $row[0];                                                  

            $_SESSION['customerID'] = $custID;
    }
    mysqli_free_result($results);                               
}
else{
    //send an email to say that something went wrong    

    //end this code execution
    exit();
}

$customerID = $_SESSION['customerID'];

$q = "SELECT * FROM transaction INNER JOIN customer ON customer.cust_id = transaction.cust_id WHERE customer.cust_id = ".$customerID." AND paypal_txn_id = '".$txnID."'";

$r = mysqli_query($dbc, $q);

if($r){
    $array = mysqli_fetch_array($r, MYSQLI_ASSOC);

    $stored_amount = $array['amount'];
    $stored_paymentStatus = $array['payment_status'];
    $stored_paypal_txn_id = $array['paypal_txn_id'];
    $transaction_id = $array['trans_id'];   

    mysqli_free_result($r);                             
}
else{
    //send an email to say that something went wrong    

    //end this code execution
    exit();
}   

我认为这可能是由于变量范围,但在阅读后我发现变量的范围在if语句内部不是问题。我将客户ID分配给会话变量,但如果我使用print_r($_SESSION),这也是空白。我尝试了MYSQLI_NUMMYSQLI_ASSOC并获得了相同的结果。我只能假设这是一个愚蠢的错误,我无法看到,因为我在PHP方面非常环保并且已经盯着这段时间了一段时间了!

非常感谢您提供任何帮助。

0 个答案:

没有答案