我在构建站点的调试过程中遇到了麻烦,可以寻求帮助。

该站点是固定价格工作(Fiverr like)站点。因此,“买方”从“卖方”那里买了一份工作,然后在线上付款。这些钱暂时留在网站的贝宝帐户中。因此,当工作完成时,卖方可以“提取”这笔钱,而管理员必须将其转移到卖方的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;

}


提前致谢

最佳答案

由于数据上的引号,您在INSERT INTO上出错:

“ Panayiotis Kolevris的测试店”

要解决此问题,请尝试添加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上的数据已经被引号(')包裹了。因此,在将数据填充到$dataArray之前,必须先对其进行转义。

关于php - 从Paypal付款返回网站期间,mysql插入查询出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5413690/

10-14 14:19
查看更多