20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/mysql2-cs-bind.rb', line 20
def self.pseudo_bind(sql, values)
sql = sql.dup
placeholders = []
search_pos = 0
while pos = sql.index('?', search_pos)
placeholders.push(pos)
search_pos = pos + 1
end
values = values.flatten(1) if placeholders.length == values.flatten(1).length
raise ArgumentError, "mismatch between placeholders number and values arguments" if placeholders.length != values.length
while pos = placeholders.pop()
rawvalue = values.pop()
if rawvalue.is_a?(Array)
sql[pos] = rawvalue.map{|v| quote(v) }.join(",")
else
sql[pos] = quote(rawvalue)
end
end
sql
end
|