一年左右的时间里,我使用了一个php页面将来自csv文件的ebay订单导入到mysql数据库中。以下是我的查询代码:
"INSERT INTO orders VALUES (0, {$fname}, {$lname}, {$address1}, {$address2}, {$town}, {$county}, {$postcode}, {$country}, {$tel}, {$email}, '', {$postage}, {$subtotal}, {$total}, {$basket},'', 'eBay', now(), 'GBP', 'paypal', 1, '', 1, {$txnId}) ON DUPLICATE KEY UPDATE txnid=txnid, complete=complete, new=new, time=time;";
上周我开始收到错误信息“在解析过程中发现非法的双倍(txnId varchar)值”,这会影响到一些订单的导入。有人建议这是因为$txnId的值没有正确地被分隔。我已经尝试将其更改为
'{$txnId}'
和\'{$txnId}\'
,虽然这两种方法都可以解决问题,但这样做会导致那些没有问题的订单的txnIds前缀为''。请问有人能帮我找到修改查询的方法,以便在某些订单上不再收到此错误吗?并且,能否有人向我解释一下这个错误信息的确切含义,以及为什么它只影响某些订单,因为我想了解这个问题并解决它。
$txnId
解释为double类型(它可能包含小写的e)。由于语句中存在未加引号的字符串,我很惊讶它居然能够工作。 - Phil