2つのエスケープSQL Serverがあります。
最初のエスケープ文字は、単一引用符です(「)
「デフォルトでは、単一引用符単一引用符()(」)文字列は単一引用符が含まれている場合(「)、境界文字列である(()、最初の単一引用符、次の2つの単一引用符を使用する必要があります」 「)エスケープ文字です。
例:
ここでは、SQLの誤差があり、
INSERT INTO Cogs_PurchaseSale( CREATETIME、UpdateTime、ApDate、 タイプ、変更、通貨、一方ExchangeRate、 [日付]、ストアコード、ItemColor、数量、 ProfitCenter、CreditNote) SELECT GETDATE()、GETDATE()、 '2019年11月1日'、 ケースときLEN(のisNull(sm.Type、 'StockMovement'))> 0、その後、他のsm.Type 'StockMovement'末端、 '減少'、 'SYSTEM_LOCAL_CURRENCY'、 '1'、 MAX(SM。[日付])、LEFT(SM .RecipientWarehouse、4)、 sm.ItemCode + sm.ColorCode、和(sm.Qty)、 MAX(sm.ProfitCenter)、MAX(sm.Remark) としてCogs_StockMovement FROM SM WHERE sm.APDate = '2019年11月1日'そして、LEN(sm.RecipientWarehouse)> 0 GROUP BY sm.Type、sm.RecipientWarehouse、sm.ItemCode、sm.ColorCode
私は、SQLテーブルにこのレコードを配置する必要があり
$ failmsg =」 INSERT INTO Cogs_PurchaseSale(CREATETIME、UpdateTime、ApDate、タイプ、変更、通貨、一方ExchangeRate、[日付]、ストアコード、ItemColor、数量、ProfitCenter、CreditNote) SELECT GETDATE()、GETDATE()、「2019-11- 01' 、 ケース場合LEN(のisNull(sm.Type、 'StockMovement'))> 0、次いで他sm.Type 'StockMovement'末端、 '減少'、 'SYSTEM_LOCAL_CURRENCY'、 '1'、 MAX(SM。[日]) 、LEFT(sm.RecipientWarehouse、4)、 sm.ItemCode + sm.ColorCode、和(sm.Qty)、 MAX(sm.ProfitCenter)、MAX(sm.Remark) Cogs_StockMovement FROM SMとして sm.APDate = '2019- 11-01' AND LEN(sm.RecipientWarehouse)> 0 GROUP BY sm.Type、sm.RecipientWarehouse、sm.ItemCode、sm.ColorCode」。
。$ SQL = "更新Cogs_TaskListセットFailDesc = '"。str_replace( "'"、 " ''"。、($ failmsg)) " 'UpdateTime ='"日付( "はYmd H:I:S")「。 「どこID =」$番号。 $ RES = $ dbobj->クエリ($ sqlを);
ここではマナーstr_replaceは、2つの単一引用符単一引用符で置き換えます
もう一つは、二重引用符(「)をエスケープ
SET QUOTED_IDENTIFIER OFFは、「境界文字列は、文字列」は、それぞれ、」2を使用する必要がある場合。