diff options
-rw-r--r-- | lib/LuaSQL.cc | 18 | ||||
-rw-r--r-- | lib/SQL.cc | 2 |
2 files changed, 13 insertions, 7 deletions
diff --git a/lib/LuaSQL.cc b/lib/LuaSQL.cc index 2563ff6..a5b2dce 100644 --- a/lib/LuaSQL.cc +++ b/lib/LuaSQL.cc @@ -111,13 +111,17 @@ int sLua_SQLConnection::SQLConnection_proceed(Lua * L, int n, SQLConnection * c, L->push((lua_Number) c->numfields()); break; case SQLCONNECTION_FETCHROW: - r = c->fetchrow(); - L->newtable(); - for (i = r.begin(); i != r.end(); i++) { - L->push(i->first); - L->push(i->second); - L->settable(); - } + if (c->numrows()) { + r = c->fetchrow(); + L->newtable(); + for (i = r.begin(); i != r.end(); i++) { + L->push(i->first); + L->push(i->second); + L->settable(); + } + } else { + L->push(); + } break; case SQLCONNECTION_NUMAFFECTEDROWS: L->push((lua_Number) c->numaffectedrows()); @@ -100,6 +100,8 @@ AssocArray SQLConnection::fetchrow() { for (i = 0; i < nf; i++) { r[fields[i].name] = row[i] ? row[i] : "NULL"; } + + nf--; } return r; |