diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/dbmodelfunctions.lua | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/dbmodelfunctions.lua b/lib/dbmodelfunctions.lua index c108c81..db92947 100644 --- a/lib/dbmodelfunctions.lua +++ b/lib/dbmodelfunctions.lua @@ -290,16 +290,19 @@ function mymodule.update_table_entry(dbase, self, entry, action, create) local sql local names = {} local values = {} - for n,v in pairs(entry.value.fields.value) do - if create or not reversekeyfields[n] then + if create then + for n,v in pairs(entry.value.fields.value) do names[#names+1] = n values[#values+1] = get_field_value(db, self, entry, n) end - end - if create then sql = "INSERT INTO "..db.escape(entry.value.table.value).." ("..table.concat(names, ", ")..") VALUES("..table.concat(values, ", ")..")" else - sql = "UPDATE "..db.escape(entry.value.table.value).." SET ("..table.concat(names, ", ")..") = ("..table.concat(values, ", ")..") WHERE "..table.concat(fieldchecks, " AND ") + for n,v in pairs(entry.value.fields.value) do + if not reversekeyfields[n] then + values[#values+1] = n.."="..get_field_value(db, self, entry, n) + end + end + sql = "UPDATE "..db.escape(entry.value.table.value).." SET "..table.concat(values, ", ").." WHERE "..table.concat(fieldchecks, " AND ") end db.runsqlcommand(sql) end |