Desde el mysqli::prepare
documentos
:
Los marcadores de parámetros deben vincularse a las variables de la aplicación utilizando mysqli_stmt_bind_param() y/o mysqli_stmt_bind_result() antes de ejecutar la declaración o buscar filas.
es decir:
$name = 'one';
$age = 1;
$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)");
// bind parameters. I'm guessing 'string' & 'integer', but read documentation.
$stmt->bind_param('si', $name, $age);
// *now* we can execute
$stmt->execute();