Тут вопрос не очень понятен, а что доступно вам из PHP? Это скрипт для веб-сервера? Он может быть запущенным постоянно, или он периодичен синхронно запросам из браузера?
Если может быть запущен постоянно, то выше
groaner дал вам ссылку на описание событий в FireBird, сами события на серверной стороне можно постить из табличного триггера на insert, ловить их в PHP и дальше по смыслу.
А в целом для FireBird/Interbase можно можно по запросу из браузера дергать из базы даже не записи с момента чтения последней, а значение генератора, который используется для автоинкремента id в таблице — это будет проще для БД и быстрее. Если изменился генератор, тогда уже слать запрос новых записей.
Можно так же сделать «хранимую процедуру» на стороне сервера, отдающую новые данные, если они появились — большинство пакетных запросов через хранимую процедуру будут выполняться быстрее, чем с клиента их последовательно подавать(избавляемся от серии prepare для каждого запроса, т.к. «хранимка» сама по себе «подготавливается» еще в момент компиляции blr). В процедуру передавать последний прочитанный id, а она сама будет его сравнивать с генератором, и если что-то изменилось, тогда уж лезть в таблицу за записями и отдавать их клиенту, иначе отдавать пустой результат.
Точно так же можно и следить за измененными записями(не только добавленными): делаем в таблице еще одно поле, которое обновляется от генератора как при insert, так и при update, и следим за изменениями и вставками уже по этому, отдельному, генератору.
P.S. конечно, если у вас база не сильно нагружена, то слежение за генератором можно и опустить, всегда просто запрашивая таблицу напрямую на предмет наличия новых/измененных записей.