Ja, es ist möglich. Es ist ein klassischer Fall einer Race Condition.
Die schnelle Erklärung:
Es besteht die Möglichkeit, dass 2 Anfragen gleichzeitig eingehen Bestehen Sie die erste Prüfung, erhalten Sie $num == 0 und beide fügen eine neue Zeile ein.
Um ihn zu eliminieren, müssen Sie einen UNIQUE erstellen Einschränkung, die (user_id, ip, date) abdeckt Spalten
Die lange Erklärung: