Всё указывает на то, что ошибка здесь:
$sql="CALL P_NAME_ID (?,?,?,?)";
Я не знаю firebird, так что не подскажу дальше. Но глаз режет отсутствие точки с запятой. По идее она не обязательная но…
PS: на вскидку гугл мне не выдал ничего про
зато выдал про
CALL P_NAME_ID
EXECUTE PROCEDURE
Уверенны в синтаксисе?
Прямое выполнение инструкции в консоли ошибку не выдает?