2012-06-30 21 views
16

Tôi có cuộc gọi ajax sauthuyết lỗi cú pháp với lĩnh vực có tên là "trật tự"

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 
}); 

Và trong hành động của tôi tôi nhận được trật tự và thiết lập nó như thế này

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

nhưng sự cho cuộc gọi ajax me thew sau lỗi

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) 

Tôi nhận được dữ liệu bài đăng chính xác và truy vấn cung cấp cho tôi những bản ghi này cũng đang hoạt động e.

Sự cố ở đâu?

Bất kỳ ý tưởng nào?

Cảm ơn trước

+0

tốt nó không quá nhiều cuộc gọi ajax cho các lỗi. Đó là một vấn đề SQL. Bản đồ học thuyết của bạn trông như thế nào? – MDrollette

+0

@MDrollette Tôi nghĩ rằng thứ tự là từ khóa dành riêng trong mysql và đó cũng là tên của cột của tôi. Tôi nghĩ đó là lý do của vấn đề bạn nghĩ sao? –

+0

ah, yup, chắc chắn rồi. – MDrollette

Trả lời

43

Vấn đề là order là một từ dành riêng trong MySQL. Nếu bạn đang sử dụng học thuyết bạn có thể nói với nó để thoát khỏi những lời dành riêng trong các bản đồ như vậy:

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

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

+0

như vậy là nó tốt để thoát khỏi chúng? –

+0

nó chắc chắn sẽ sạch hơn để đổi tên nó. Nhưng điều này nên * làm việc * – MDrollette

+0

hãy để tôi cho nó một thử tôi sẽ thông báo cho người quan tâm để đổi tên các cột ... Cảm ơn :) –

Các vấn đề liên quan