2012-05-28 34 views
6

Ruby newbie here. Tôi đang cố gắng để chèn chuỗi này "Scandella Lady Arabella ..." Tôi đang sử dụng ruby-pg để làm điều này. Tuy nhiên tôi đang có erros vì báo giá duy nhất, làm thế nào tôi có thể khử trùng chuỗi này và loại bỏ tất cả các thẻ html? Có chức năng tích hợp cho điều này không?ruby-pg khử trùng dữ liệu trước khi chèn

Trả lời

20

Bạn có thể sử dụng escape_string để thoát đúng dấu nháy đơn của bạn:

db = PG.connect(...) 
db.exec("insert into t (...) values ('#{db.escape_string(str)}', ...)") 

hoặc sử dụng prepareexec_prepared để làm việc với một tuyên bố chuẩn bị thay vì:

db.prepare('ins', 'insert into t (...) values ($1, ...)') 
db.exec_prepared('ins', [str, ...]) 
+0

Cảm ơn. Tôi google và đã đến đây. Sử dụng 'connection.escape_string'. – huy

+0

@huy Cảnh báo, 'connection.escape_string' sẽ không thoát khỏi dấu gạch chéo ngược ở cuối trường của bạn. –

+2

@IslamAzab 'escape_string' chỉ cần gọi' PQescapeStringConn' từ thư viện PostgreSQL C vì vậy nếu nó không thoát khỏi dấu gạch chéo ngược thì nó không cần. Hay tôi đang thiếu một cái gì đó? –

Các vấn đề liên quan