Синтаксическая ошибка Doctrine с полем "order" - программирование

Синтаксическая ошибка Doctrine с полем "order"

У меня есть следующий вызов ajax

var prev_sibling = $(this).prev().attr("value");
var next_sibling = $(this).next().attr("value");
var order = (prev_sibling + next_sibling)/2; 
var data = {PID:element_id, TGID:parent_id, ORD:order};
$.ajax({
        type: "POST",
        data: data,
        url:"{{ path('v2_pm_patents_dragpatents') }}",
        cache: false
});

И в моем действии я получаю заказ и устанавливаю его так:

$order = $request->get('ORD');
$patent->setOrder($order);

но вызов ajax дает мне следующую ошибку

Syntax error or access violation: 1064 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 'order = '750' WHERE id = '0d0c0810-bc75-11e1-96a5-9787dec335c2'' at line 1 (500 Internal Server Error)

Я правильно получаю почтовые данные, и запрос, который дает мне эти записи, также отлично работает.

Где проблема?

Любые идеи?

Заранее спасибо

4b9b3361

Ответ 1

Проблема заключается в том, что order является зарезервированным словом в MySQL. Если вы используете доктрину, вы можете сказать ей избегать зарезервированных слов в сопоставлении следующим образом:

/** @Column(name="`order`", type="integer") */
private $order;

http://docs.doctrine-project.org/en/latest/reference/basic-mapping.html#quoting-reserved-words