View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0016850||phpList 3 application||Campaign Send Process||public||27-08-13 15:32||08-04-14 02:54|
|Target Version||3.0.X||Fixed in Version||3.0.6|
|Summary||0016850: Query updating msg/hr in messagedata will fail on geman locale|
|Description||When processing the queue from the command line I get a lot of messages like this:|
Nachrichtenbrief - Sql error replace into messagedata set id= 1, name="msg/hr", data= 13819,3548387
Nachrichtenbrief - Database error 1064 while doing query You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0645161' at line 1
The messages are send out fine.
The problem is the "," in the query, MySQL needs a "." there. This is on a (old) GERMAN server, I'm pretty sure that's the problem. In german you write fractional numbers with a ",", but MySQL expects the english format with the ".".
Pretty common problem :)
|Tags||No tags attached.|
I've seen it in different (english) contexts as well. It should get " around the value.
Still having the problem on 3.0.5, seems not to be fixes.
To fix change the line setMessageData($messageid,'msg/hr',$msgperhour); in processqueue.php to setMessageData($messageid,'msg/hr',"$msgperhour");
edit file admin/action/processqueue.php worked for me
line no. 1146:
this will change the localised number format into the system format, that fits SQL syntax.