mysqli ¿por qué sucede esto?

Tengo dos declaraciones subsiguientes de mysqli, y la segunda vuelve:

Error fatal: Llamada a una función miembro bind_param () en un no objeto en ...

¿Por qué sucede esto? ¿Esto significa que necesito abrir dos conexiones diferentes? ¿Hay alguna forma de evitar esto (me encanta mantener los detalles de la conexión SQL en un archivo)?

Aquí el código:

$db = new mysqli("localhost", "root", "", "database");

$stmt = $db->prepare("UPDATE posts SET vote_".$_POST['vote']." = vote_".$_POST['vote']." + 1 WHERE id=?");
$stmt->bind_param('s', $_POST['id_post']);
$stmt->execute();
$stmt->close();

$stmt = $db->prepare("INSERT INTO votes (kind, users_id, posts_id) VALUES (?, ?, ?)");
$stmt->bind_param('sss',$_POST['vote'],$_POST['id_user'],$_POST['id_post']);
$stmt->execute();
$stmt->close();

Respuestas a la pregunta(3)

Su respuesta a la pregunta