Problem: Even though my $settings array has values (int) in them, MySQL writes NULL into the table both when the value is 0 and 2.
For reference, each index in the $settings array is an array of [0] = max and [1] = min.
public function updateAdaptiveArmour($gameid, $shipid, $settings){
    foreach ($settings as $key => $value){
        debug::log($key." ".$value[0]." ".$value[1]);
       //just to show the contents
       //   [561103190304f][2015-10-04 12:44:41] particle 4 2 
       //   [56110319035b3][2015-10-04 12:44:41] laser 0 0 
       //   [56110319035b3][2015-10-04 12:44:41] molecular 0 0 
    }   
    try {
        if ($stmt = $this->connection->prepare(
                "UPDATE 
                    tac_adaptivearmour
                 SET
                    particlealloc = ?,
                    laseralloc = ?,
                    molecularalloc = ?
                 WHERE 
                    gameid = ?
                    AND shipid = ?
                 "
        ))
        {
            $stmt->bind_param('iiiii', $settings[0][1], $settings[1][1],  $settings[2][1], $gameid, $shipid);
            $stmt->execute();
            $stmt->close();
        }
    }
    catch(Exception $e) {
        throw $e;
    }
}
Ideally, for this example, I would want to UPDATE to 2 / 0 / 0 instead of null / null / null.
 
    