6
Ruby初心者はこちら。私はこの文字列 "Lady Arabella's Scandalo ..."を挿入しようとしています。私はこれを行うためにruby-pgを使用しています。しかし、一重引用符のためにエラーが発生しています。この文字列をどのように消去し、すべてのhtmlタグを削除できますか?このための関数が組み込まれていますか?ruby-pgはデータを挿入する前に消毒する
Ruby初心者はこちら。私はこの文字列 "Lady Arabella's Scandalo ..."を挿入しようとしています。私はこれを行うためにruby-pgを使用しています。しかし、一重引用符のためにエラーが発生しています。この文字列をどのように消去し、すべてのhtmlタグを削除できますか?このための関数が組み込まれていますか?ruby-pgはデータを挿入する前に消毒する
あなたは適切にあなたの単一引用符をエスケープするescape_string
を使用することができます。
db = PG.connect(...)
db.exec("insert into t (...) values ('#{db.escape_string(str)}', ...)")
またはprepare
を使用してexec_prepared
ではなく、準備されたステートメントで動作するように:
db.prepare('ins', 'insert into t (...) values ($1, ...)')
db.exec_prepared('ins', [str, ...])
感謝を。私はGoogleとここに来た。 'connection.escape_string'を使用しています。 – huy
@heady up、 'connection.escape_string'はフィールドの最後にバックスラッシュをエスケープしません。 –
@IslamAzab 'escape_string'はPostgreSQL Cライブラリから' PQescapeStringConn'を呼び出すだけです。したがって、バックスラッシュをエスケープしない場合は必要ありません。または私は何かを逃していますか? –