I've got a statement
LOAD DATA LOCAL INFILE 'location\\march.csv'
INTO table waterportal.payments
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '
'
IGNORE 7 LINES
(CustomerReference, AccountStatus, CustomerName, Reference, ProcurementGroup, ContractStatus, @ContractStart, @ContractEnd, ContractDurationMonths, ContractDurationYears, MainBillingAccountFlag, Service, PaymentMethod, TransferOutWater, TransferOutWaste, @DebtOver39Days, @CommissionRate, @ValueBillInMonth, @DateBilled, @PayableCommission,@dummy1,@dummy2,@dummy3)
SET
UploadDate = NOW(),
ContractStart = STR_TO_DATE(@ContractStart, '%d %b %y'),
ContractEnd = STR_TO_DATE(@ContractEnd, '%d %b %y'),
DateBilled = STR_TO_DATE(@DateBilled, '%d %b %y'),
DebtOver39Days = REPLACE(REPLACE(TRIM(@DebtOver39Days), '£', ''), ',',''),
ValueBillInMonth = REPLACE(REPLACE(TRIM(@ValueBillInMonth), '£', ''), ',',''),
PayableCommission = REPLACE(REPLACE(TRIM(@PayableCommission), '£', ''), ',',''),
CommissionRate = (TRIM(TRAILING '%' FROM NULLIF(@CommissionRate, ''))/100)
;
And if I run it in WorkBench it works fine. If I use the same statement in my PHP file, the DebtOver39Days, ValueBillInMonth and PayableCommission fields all fail and enter as 0.
I'm not sure if there's an alternative to DebtOver39Days = REPLACE(REPLACE(TRIM(@DebtOver39Days), '£', ''), ',',''),
that still strips out the £ from the start of the data.