Si, deberia conectarse la base de datos.
Para comprobar simplemente usa:
if(!$gas){
//error
}
El ejemplo que te mostre me funciona sin problemas.
Con respecto a la forma STMT es para lo que se llama: Prepared Statement.
Un ejemplo:
Código PHP:
$query = "insert into books values(?, ?, ?, ?)"; //se sustituyen los valores por ?
$stmt = $db->prepare($query); //preparas la consulta
$stmt->bind_param("sssd", $isbn, $author, $title, $price); //sssd significa: string, string, string, double. esto es parecido al printf de php
$stmt->execute(); //ejecuta la consulta
echo $stmt->affected_rows.' book inserted into database.';
$stmt->close();
es muy usado cuando por ejemplo tienes que hacer muchos inserts.