我在构建站点的调试过程中遇到了麻烦,可以寻求帮助。
该站点是固定价格工作(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/