如何解决在mysql插入上的“解析期间发现非法双...值”?

Bea*_*ean 4 php mysql sql

一年左右的时间,我已经使用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;";
Run Code Online (Sandbox Code Playgroud)

上周,我开始在某些订单行上收到错误“在解析过程中发现非法的double(txnId varchar)值”,这使我无法导入其他订单。

我读过一些建议,因为这是因为$ txnId值未正确定界。我尝试将其更改为'{$txnId}'和\'{$txnId}\',这都可以,但是在两种情况下,它都会导致非问题订单的txnIds带有前缀''。

谁能帮助我找到一种方法来修改查询,使我不再在某些订单上收到此错误?而且,作为奖励,任何人都可以向我确切解释此错误消息的含义,以及为什么它仅影响某些订单,因为我希望了解并解决此问题。

nan*_*ech 5

变量中的'E'可能使系统误认为它是一个双精度值,因为双精度值可以表示为类似于“ 7.012E-5”的值