我正在尝试使用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}')"
)
答案 0 :(得分:1)
你必须逃避所有双引号("
),如下所示:\"
。
答案 1 :(得分:1)
此网站的语法着色应该足以向您展示正在发生的事情。一旦到达以:
开头的行"37bf7a30-b6cf-4642-89c9-031c1f6c34d0":
它停止着色与查询的其余部分颜色相同。你的PHP字符串使用"
作为分隔符,所以在那里它认为其余的不是查询的一部分,奇怪的事情开始发生,因为它不再有你想要做的事情。
你应该逃避引号,如下:
\"37bf7a30-b6cf-4642-89c9-031c1f6c34d0\": {
然后在整个字符串中每次出现"
。