2016-12-05 140 views
0

我有查詢是動態更新到一個遷移文件,當我執行確切的查詢它會拋出這個錯誤,我已經嘗試了很多,但沒有任何工作! 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 'type':'text','filed_name':'Ture_st aare','order':'5','values':['Mr','Mrs','Miss']' at line 1這些查詢有什麼區別?

Query 1 
// working 
DB::statement("Insert Into custom_fields_configure (`table_name`, `configure`, `filed_name`, `module_id`,`created_at`,`updated_at`) values ('ads','test','cf_Ture_staare',22,now(),now());"); 

Query 2 
// Not working 
DB::statement("Insert Into custom_fields_configure (`table_name`, `configure`, `filed_name`, `module_id`,`created_at`,`updated_at`) values ('ads','{'type':'text','filed_name':'Ture_staare','order':'5','values':['Mr','Mrs','Miss'],'datalenght':'5'}','cf_Ture_staare',22,now(),now());"); 

這怎麼解決?

+4

您似乎在一個字符串中使用了單引號作爲一個值。只需加倍單引號,這樣SQL就能正確解釋它們。 –

+0

只需在「'」前添加「\」或用雙引號替換單引號 – Beginner

+0

是的,它的作品對我來說,謝謝! @GordonLinoff,@ Newbee Dev –

回答

0

看來你試圖插入這個值作爲一個字符串。

{ '類型': '文本', 'filed_name': 'Ture_staare', '訂單': '5', '值':[ '先生', '夫人', '小姐'] , 「datalenght」:「5」 }

這似乎有點過我,因爲它看起來像極了文本里面去(如「類型」的:「文」,「datalenght」:「5」 )不應該在那裏。如果你需要把相同的值作爲一個值,那麼你需要添加「\」,以便可以將其作爲單個字符串值。

希望這會有所幫助!