Ya, itu mungkin. Ini adalah kasus klasik dari kondisi balapan.
Penjelasan singkatnya:
Ada kemungkinan 2 permintaan secara bersamaan lulus pemeriksaan pertama, dapatkan $num == 0 dan keduanya menyisipkan baris baru.
Untuk menghilangkannya, Anda perlu membuat UNIQUE batasan yang mencakup (user_id, ip, date) kolom
Penjelasan panjangnya: