从paypal付款返回网站期间mysql插入查询的问题

时间:2011-03-24 01:24:34

标签: php mysql sql paypal paypal-ipn

我在我构建的网站的调试过程中遇到了困难,我可以使用一些帮助。

该网站是一个固定价格的工作(fiverr like)网站。因此,“买方”从“卖方”购买工作并在线支付金额。这些钱暂时停留在网站的paypal账户中。因此,当工作完成后,卖方可以“提取”这笔钱,管理员必须将它们转移到卖方的paypal账户。

以下是我在卖家的PayPal帐户管理员完成“转账”过程后我在浏览器中收到的消息,并使用“返回商家”PayPal按钮返回网站。

这个SQL查询可能有什么问题?

CHECK_QUERY insert into `ninerr_admin_order_payment` 

(`order_status_date`,`mc_gross`,`protection_eligibility`,`address_status`,`payer_id`,`tax`,`address_street`,`payment_date`,`payment_status`,`charset`,`address_zip`,`first_name`,`address_country_code`,`address_name`,`notify_version`,`custom`,`payer_status`,`business`,`address_country`,`address_city`,`quantity`,`payer_email`,`verify_sign`,`txn_id`,`payment_type`,`payer_business_name`,`last_name`,`address_state`,`receiver_email`,`receiver_id`,`pending_reason`,`txn_type`,`item_name`,`mc_currency`,`item_number`,`residence_country`,`test_ipn`,`transaction_subject`,`handling_amount`,`payment_gross`,`shipping`,`merchant_return_link`)

VALUES ('2011:03:22','4.00','Ineligible','confirmed','7BV3JALNZYV2W','0.00','1 Main St','12:26:51 Mar 22, 2011 PDT','Pending','windows-1252','95131','Panayiotis','US','Panayiotis Kolevris's Test Store','3.1','','unverified','panayk_1299455633_per@otenet.gr','United States','San Jose','1','panayk_1299526871_biz@otenet.gr','AFcWxV21C7fd0v3bYYYRCpSSRl31AIaMVYBqWOK51ttsVWF3i1gzorhH','9E090982RT6501508','instant','Panayiotis Kolevris's Test Store','Kolevris','CA','panayk_1299455633_per@otenet.gr','DC4DA8HA7Y4U2','verify','web_accept','Withdraw','EUR','1','US','1','Withdraw','0.00','','0.00','Return to Merchant')

产生上述结果的动态代码是:

function dataInsert($table,$dataArray){

 $fldArray=$dataArray;

    $i=0;

    $j=0;

    $sql.="insert into `".$table."` (";

    while (list($key1, $value1) = each ($fldArray)) {

        $sql.="`".$key1."`";

        $j++;

        if($j!=count($fldArray)){

        $sql.=",";

        }

        if($j==count($fldArray)){

        $sql.=") VALUES (";

        }

    }



        while (list($key1, $value1) = each ($dataArray)) {

        $sql.="'".$value1."'";

        $i++;

        if($i!=count($dataArray)){

            $sql.=",";

        }

        if($i==count($dataArray)){

        $sql.=")";

        }

    }

mysql_query($sql) or die(CHECK_QUERY.$sql);

$id=mysql_insert_id();

return $id;

}

提前致谢

2 个答案:

答案 0 :(得分:1)

由于数据引用,您在INSERT INTO上遇到错误:

'Panayiotis Kolevris's Test Store'

要解决此问题,请尝试添加mysql_escape_string( )

while (list($key1, $value1) = each ($dataArray)) {
  $sql.= mysql_escape_string( $value1 );
  $i++;
if($i!=count($dataArray)){
  $sql.=",";
}
if($i==count($dataArray)){
  $sql.=")";
}

<强>更新

但是,在$dataArray上的数据似乎已经被quote(')包装。因此,您必须先将数据转义为$dataArray

答案 1 :(得分:0)

数据库返回什么?哪个错误?

尝试在PHP中使用以下说明并使用输出

error_reporting(E_ALL);
ini_set('display_errors', true);