-1

一重引用符と二重引用符を多く含むテーブルにデータを挿入しようとしています。

INSERT INTO vulnerabilities_internal_test (device_type, ip_address, user_tag, 
repositoryID, severity, pluginID, pluginName, pluginText)

VALUES ("@Data.device_type~", "@Data.ip_address~", "@Data.user_tag~", 
"@Data.repositoryID~", "@Data.severity~", "@Data.pluginID~", "@Data.pluginName~", 
replace(replace("@Data.pluginText~", ',', ''), '"', '' ))

次のエラーが表示されます。

SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、使用する正しい構文について確認してください。\nこのスキャンが実行されたとき、\n\nCVE : CVE-2011-1000,' at line 3

ただし、データは次のようになります。

このスキャンが実行されたとき、\n徹底的なテストは有効ではありませんでした。\n\nCVE : CVE-2011-1000

二重引用符の 1 つが単一引用符に置き換えられ、このエラーがスローされる理由を知っている人はいますか?

4

1 に答える 1

0

それは問題ではありません。問題は、データのすべての引用符をスラッシュ ('\') でエスケープする必要があることです。そうすれば、結果をコードに返すときにデータのエスケープを解除するだけで済みます。

于 2012-05-21T17:36:41.410 に答える