sql >> Databasteknik >  >> RDS >> Mysql

IP Blacklist i PHP+MySQL

Följande fråga behöver inte köras regelbundet och kan flyttas till ett cron-jobb:

DELETE FROM failures WHERE release_time < ?;

Denna "booleska" fråga returnerar 1 om personen är svartlistad, 0 annars:

SELECT
  COUNT(ip_address) as blacklisted
FROM blacklist
WHERE
  ip_address = ? AND
  release_time > ? AND
  failures > 5

Det kan påskynda saker och ting eftersom du inte använder PHP för att räkna rader och jämföra siffror:

if ($row['blacklisted']) { /* ... */ }

Jag tror inte att du kan undvika det sista egentligen.




  1. Det går inte att skapa mysql-tabell på grund av felaktigt datetime-värde ... för funktionen str_to_date

  2. Gäller ORDER BY före eller efter DISTINCT?

  3. Designa en databas för ett rekryteringssystem

  4. Uppdatera en materialiserad vy automatiskt med hjälp av en regel eller avisering