Erreur: nombre de variables liées ne correspond pas à un nombre de jetons

Je veux faire un insert seulement si il n'y a pas de correspondance dans la base de données (mySQL), mais il me fait pas la déclaration. Voici l'extrait de

    if ($sql->rowCount() > 0) {
        echo 'Non inserisci';
    } else {
        echo 'Inserisci';
        $db->beginTransaction();
        echo 'Ciao3';
        $sql = $db->prepare("INSERT INTO contatti (nome,cognome) VALUES (?,?)") or die('Ciao2');
        echo 'Ciao4';
        $sql->execute(array($_POST['nome'],$_POST['cognome']));
        echo 'Ciao5';
        $db->rollBack();
    }

Où La sélection est

    $db->beginTransaction();
    $sql = $db->prepare("SELECT * FROM contatti WHERE nome = ? AND cognome = ? WHERE nome = ? AND cognome = ?") or die ('Ciao1');
    $sql->execute(array($_POST['nome'],$_POST['cognome']));
    $db->rollBack();

Pouvez-vous m'expliquer où est la faute?

  • essayez de compter le nombre de jetons