Tak to mozliwe. To klasyczny przypadek wyścigu.
Szybkie wyjaśnienie:
Istnieje szansa, że 2 prośby jednocześnie zalicz pierwszy czek, uzyskaj $num == 0 i obaj wstawiają nowy wiersz.
Aby go wyeliminować, musisz utworzyć UNIQUE ograniczenie obejmujące (user_id, ip, date) kolumny
Długie wyjaśnienie: