Merge pull request #1230 from imachug/db-array

Handle :param being an array
This commit is contained in:
ZeroNet 2018-01-05 20:19:52 +01:00 committed by GitHub
commit 520fd6e063
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -47,6 +47,21 @@ class DbCursor:
keysvalues = "(%s) VALUES (%s)" % (keys, values) keysvalues = "(%s) VALUES (%s)" % (keys, values)
query = re.sub("(.*)[?]", "\\1%s" % keysvalues, query) # Replace the last ? query = re.sub("(.*)[?]", "\\1%s" % keysvalues, query) # Replace the last ?
params = tuple(params.values()) params = tuple(params.values())
elif isinstance(params, dict) and ":" in query:
new_params = dict()
values = []
for key, value in params.items():
if type(value) is list:
for idx, val in enumerate(value):
new_params[key + "__" + str(idx)] = val
new_names = [":" + key + "__" + str(idx) for idx in range(len(value))]
query = re.sub(r":" + re.escape(key) + r"([)\s])", ", ".join(new_names) + r"\1", query)
else:
new_params[key] = value
params = new_params
s = time.time() s = time.time()
# if query == "COMMIT": self.logging = True # Turn logging back on transaction commit # if query == "COMMIT": self.logging = True # Turn logging back on transaction commit