Метод на ruby по удалению мусора в виде разных скобок, exclamation и других символов, которые гарантированно приведут к ошибке при insert в базу. При необходимости можно добавить символы в переменную pattern.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ....
[code language=”ruby”]
def del_garbage_for_bd(data)
pattern = /!|’|"|\\/
if data.is_a? Array
res = []
data.each do |r|
if r.is_a? Array
data2 = []
r.each do |r2|
r2 = r2.gsub(pattern,"") if r2.is_a? String
data2 << r2
end
r = data2
end
if r.is_a? String
r = r.gsub(pattern,"")
end
res << r
end
return res
end
data = data.gsub(pattern,"") if data.is_a? String
data
end
[/code]
Примеры отработки.
str = "test1!!\"" print del_garbage_for_bd(str) > test1 num = 4 print del_garbage_for_bd(num) > 4 arr = [ "test1!!\"", "test5", "test6", "test7", 1, 2 ] print del_garbage_for_bd(arr) > ["test1", "test5", "test6", "test7", 1, 2] arr2 = [ ["test1!!\"", "test5"], ["test5!!\\\""], ["test6"], ["test7"], [1], [2] ] print del_garbage_for_bd(arr2) > [["test1", "test5"], ["test5"], ["test6"], ["test7"], [1], [2]]