Error with global database help!

Hello,

I’m running into an issue I find very confusing.

In my game.lua I have,  local utils = require(“helpers.globals”)
 
The weird thing is when I try and call either utils.powerupInfo[4] or utils.powerupInfo[5] in my game.lua file I get the following error…
 
helpers\globals.lua:68 attempt to concatenate field “?” (a nil value" stack traceback: …in function ‘savePlayerInfo’
 
However if I were to remove all signs of utils.powerupInfo[4] and utils.powerupInfo[5] in my globals document it works fine. Why can’t I add more then the 3 powerupInfo’s? I have a feeling it is something simple but I have worked hours trying to figure it out with no avail. If anyone could help I would be extremely grateful!
 
This is my code…

 
 

------------------------------------------------------------------------- ---Globals--- ------------------------------------------------------------------------- local M = {} local sqlite3 = require("sqlite3") local mF = math.floor local \_W = display.contentWidth local \_H = display.contentHeight ------------------------------------------- -- VARIABLES -------------------------------------------- M.highscore = 0 M.gems = 0 M.powerupInfo = { 1, 1, 1, 1, 1 } M.platform = "iOS" if system.getInfo("platformName") == "Android" then M.platform = "Android" M.pixelFont = "he;vetica" end -------------------------------------------- -- SPRITESHEET -------------------------------------------- M.spriteSheetData = require("images.spriteSheet") M.spriteSheetImage = graphics.newImageSheet( "images/spriteSheet.png", M.spriteSheetData:getSheet() ) -------------------------------------------- -- DATABASES - LOADING/SAVING FUNCTIONS -------------------------------------------- local function setupDatabase() local dbPath = system.pathForFile("appInfo.db3", system.DocumentsDirectory) local db = sqlite3.open(dbPath) local playerSetup = [[CREATE TABLE playerInfo(id INTEGER PRIMARY KEY autoincrement, highscore, gems, power1, power2, power3, power4, power5); INSERT INTO playerInfo VALUES(NULL, '0', ']] .. M.gems ..[[', ']] .. M.powerupInfo[1] .. [[', ']] .. M.powerupInfo[2] .. [[', ']] .. M.powerupInfo[3] .. [[', ']] .. M.powerupInfo[4] .. [[', ']] .. M.powerupInfo[5] ..[[');]] db:exec(playerSetup) db:close() end setupDatabase() M.loadPlayerInfo = function() local dbPath = system.pathForFile("appInfo.db3", system.DocumentsDirectory) local db = sqlite3.open(dbPath) for row in db:nrows("SELECT \* FROM playerInfo WHERE id = 1") do M.highscore = tonumber(row.highscore) M.gems = tonumber(row.gems) M.powerupInfo[1] = tonumber(row.power1) M.powerupInfo[2] = tonumber(row.power2) M.powerupInfo[3] = tonumber(row.power3) M.powerupInfo[4] = tonumber(row.power4) M.powerupInfo[5] = tonumber(row.power5) end db:close() end M.savePlayerInfo = function() local dbPath = system.pathForFile("appInfo.db3", system.DocumentsDirectory) local db = sqlite3.open(dbPath) local update = "UPDATE playerInfo SET highscore='" .. M.highscore .."', gems='" .. M.gems .. "', power1='" .. M.powerupInfo[1] .."', power2='" .. M.powerupInfo[2] .."', power3='" .. M.powerupInfo[3] .."', power4='" .. M.powerupInfo[4] .."', power5='" .. M.powerupInfo[5] .."' WHERE id=1" db:exec(update) db:close() end return M 

 
Thanks so much,
-Brandon