Salve a tutti,

credo di avere un problema con un prepared statement.
In una pagina ho un form con quattro id: nome, cognome, ruolo, paga. Il pulsante di invio dati ha id save.

Nella stessa pagina ho un piccolo script in javascript che preleva i dati dal form, crea una stringa concatenata con i dati e la invia tramite ajax alla pagina nuovoImpiegato.php.
codice:
$('#save').click(function(){
    var nome = $('#nome').val();
    var cognome = $('#cognome').val();
    var ruolo = $('#ruolo').val();
    var paga = $('#paga').val();
            
    var dati = "nome="+nome+"&cognome="+cognome+"&ruolo="+ruolo+"&paga="+paga;
            
    $.ajax({
    type: "POST",
    url: "nuovoImpiegato.php",
    data: dati
    }).done(function(data) {
    $('#info').html(data);
    });
});
Nella pagina nuovoImpiegato.php ho il seguente codice che, in teoria, dovrebbe ricevere i dati concatenati dalla pagina di partenza e inserirli al posto dei ? all'interno della query. Non capisco perché non funziona.
Codice PHP:
include 'config.php'

$stmt $conn->prepare("INSERT INTO impiegati (nome, cognome, ruolo, paga) VALUES (?, ?, ?, ?)");
$stmt->bind_param($nome$cognome$ruolo$paga);
$nome $_POST['nome'];
$cognome $_POST['cognome'];
$ruolo $_POST['ruolo'];
$paga $_POST['paga'];

if(
$stmt->execute()){
   echo 
"Successo.";
}else{
   echo 
"Fallimento.";

Mi vengono restituiti i seguenti errori che non riesco a risolvere:
Notice: Undefined variable: nome in C:\xampp\htdocs\www\...\nuovoImpiegato.php on line 6

Warning: mysqli_stmt::bind_param(): Invalid type or no types specified in C:\xampp\htdocs\www\...\nuovoImpiegato.php on line 6


Qualche indizio su dove sia l'errore?