Почему поле БД увеличивает только 1 раз?
Это типичная ошибка похапе программистов, которые пишут код методом копирования, не подключая голову.
values(field) для них - не команда, выполняющая строго определённую функцию, а священный текст, завещанный предками, кототорый надо употреблять только так и никак иначе, потому что он составляет часть Великой Мантры Он Дупликейт.
А если дать себе труд подумать, что делает эта функция, то нужное решение тут же придёт в голову, поскольку является частью Мантры Инкремента Значения Поля.
dell...INSERT INTO `keys` (`key`) VALUES ('$s') ON DUPLICATE KEY UPDATE count=count+1
Так работает.