1

MySQL に大混乱を引き起こす厄介な一重引用符には、従兄弟がいるようです!!! 私たちには、ユーザーがメールからコンテンツを貼り付けるか、ほぼどこからでもコピーして貼り付けて、クライアントからジョブの更新を行うシステムがあり、1 つの単一引用符に対応するたびに、別の引用符が表示されます。ここに異なるものがあります: ’ ´ ' `<--

私の正規表現はかなり弱いので、仲間の開発者は、次のようにしてそれらを削除する必要があると言いました:

return Regex.Replace(oldText, @"[’´'`""]", @"");

私はこれが好きではありません。プロらしくなく、すべての一重引用符を削除します。多くのフォーラムが示唆しているように、私がやりたいことは、一重引用符を二重にすることです。これは正しいでしょうか?

return Regex.Replace(oldText, @"[’´'`""]", @"''");

彼の DAL では、単一引用符を使用して挿入ステートメントを作成しているため、これは行われます。

sql.Append(",`to_complete_by`='" + obj.toCompleteBy + "'");

これに変更することで、このエラーを回避でき^^ますか?

sql.Append(",`to_complete_by`=\"" + obj.toCompleteBy + "\"");

または正規表現は優先方法を置き換えますか?

4

1 に答える 1

1

プリペアドステートメントをサポートしていない古いバージョンのMySQLを使用している場合は、少なくとも、最新のデータベースインターフェイスが、データベース自体ではサポートされていない機能をエミュレートできるという事実を利用する必要があります。あなたの場合、それは潜在的なパフォーマンスの向上ではなく、ステートメントの構文と値の表現を分離することでセキュリティを強化します。

于 2012-06-03T13:29:54.977 に答える