Using MySQL 5.6.13, PHPmyAdmin 4.0.6, InnoDB
This Version of MySQL more strict than older versions and does not allow inserting rows if one column is not defined in the query and has no default value in the table definition. Unfortunately, moving columns will erase the default value of VARCHAR columns, at least if that default value is '' (empty string). There is a big difference between empty string and nothing set at all, at least for MySQL 5.6.x.
Furthermore if you have a 'CURRENT_TIMESTAMP' default value in a 'DATETIME' column, phpmyadmin will report an error message (invalid sql statement) when moving around. Removing the default value, moving around and setting it back afterwards is a workaround.
Please review your whole column moving code. I assume the bugs are even more general than what I figured out.
Fixed with https://github.com/phpmyadmin/phpmyadmin/commit/be6a7948996c6e407b29e3f1a36de426f0103694