2012-04-23 98 views
2

我想創建一個數據庫的新行插入到一個PHP腳本,但經過數小時後,我收到了「語法錯誤,意外的T_LNUMBER」的錯誤。我知道,當它到達「37bf7a30-b6cf-4642-89c9-031c1f6c34d0」字符串時,它將它擰緊。我試圖把報價和雙引號放在那裏,但沒有任何工作。你知道任何工作可能會幫助我。非常感謝,併爲我的糟糕英語和混亂的代碼感到遺憾。Mysql意外T_LNUMBER

mysql_query("INSERT INTO `bbdb_item` (`id`, `application_id`, `type`, `name`, `alias`, `created`, `modified`, `modified_by`, `publish_up`, `publish_down`, `priority`, `hits`, `state`, `access`, `created_by`, `created_by_alias`, `searchable`, `elements`, `params`) 
              VALUES ('$id', 
              '1', 
              'item', 
              '$name', 
              '$alias', 
              '$date', 
              '$date', 
              '42', 
              '$date', 
              '0000-00-00 00:00:00', 
              '0', 
              '0', 
              '1', 
              '1', 
              '42', 
              '', 
              '1', 
              ' {\n 
              "37bf7a30-b6cf-4642-89c9-031c1f6c34d0": {\n  "0": {\n   "value": "http:\\/\\/www.xxxx.com\\/item\\/$id\\/overview.aspx",\n   "text": "",\n   "target": "0",\n   "custom_title": "",\n   "rel": ""\n  }\n },\n  
              "d3d4559f-24eb-46b2-a749-068ebd3eceb3": {\n  "0": {\n   "value": "$id"\n  }\n },\n  
              "0e366b7c-514a-4a37-b651-e6fe8edf78ff": {\n  "0": {\n   "value": "$country"\n  }\n },\n  
              ' {\n 
              "metadata.title": "",\n 
              "metadata.description": "",\n 
              "metadata.keywords": "",\n 
              "metadata.robots": "",\n  
              "metadata.author": "",\n  
              "config.enable_comments": "1",\n  
              "config.primary_category": "1"\n}')" 
              ) 

回答

1

你要逃避所有的雙引號(")是這樣的:\"

1

本網站的語法着色應該已經足以向您說明發生了什麼。一旦你到達以下行開始的行:

"37bf7a30-b6cf-4642-89c9-031c1f6c34d0": 

它停止着色與查詢的其餘部分相同的顏色。你的PHP字符串使用"作爲分隔符,所以在那裏它認爲其餘的不是查詢的一部分,奇怪的事情開始發生,因爲它不知道你正在做什麼。

你應該逃避引號,像這樣:

\"37bf7a30-b6cf-4642-89c9-031c1f6c34d0\": { 

然後爲"每一個出現在你的字符串。