2

phpスクリプトのinsertintoを使用してデータベースに新しい行を作成しようとしていますが、何時間も調べた後、「構文エラー、予期しない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}')"
                                            )
4

2 に答える 2

1

次のように、すべての二重引用符(")をエスケープする必要があります\"

于 2012-04-23T15:14:54.417 に答える
1

このサイトの構文の色付けは、何が起こっているかを示すのにすでに十分なはずです。次で始まる行に到達したら:

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

クエリの残りの部分と同じ色での色付けを停止します。PHP文字列"は区切り文字として使用されているため、残りの文字列はクエリの一部ではないと見なされ、何をしようとしているのかわからないため、奇妙なことが起こり始めます。

次のように、引用符をエスケープする必要があります。

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

"そして、文字列全体でのすべての出現に対して。

于 2012-04-23T15:15:52.950 に答える