Mysql意想不到T_LNUMBER

时间:2012-04-23 15:08:55

标签: php mysql

我正在尝试使用php脚本中的insert into为数据库创建一个新行但是在几个小时后查看它我收到“语法错误,意外T_LNUMBER”的错误。我知道当它到达“37bf7a30-b6cf-4642-89c9-031c1f6c34d0”字符串时,php会将其拧紧。我试过把引号和双引号放在那里,但没有任何效果。你知道任何工作可能会帮助我。非常感谢,并为我糟糕的英语和凌乱的代码感到抱歉。

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}')"
                                            )

2 个答案:

答案 0 :(得分:1)

你必须逃避所有双引号("),如下所示:\"

答案 1 :(得分:1)

此网站的语法着色应该足以向您展示正在发生的事情。一旦到达以:

开头的行
"37bf7a30-b6cf-4642-89c9-031c1f6c34d0":

它停止着色与查询的其余部分颜色相同。你的PHP字符串使用"作为分隔符,所以在那里它认为其余的不是查询的一部分,奇怪的事情开始发生,因为它不再有你想要做的事情。

你应该逃避引号,如下:

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

然后在整个字符串中每次出现"