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: