Pero en qué sentido no sirve?. ¿cuál es el problema?.
... errores de sintáxis no se ven... de proceso, creo ver uno:
Asignas inicialmente a la variable $pdf el nombre del fichero, posteriormente revizas si existe un archivo con el mismo nombre, en caso afirmativo declaras $error más no impides (ni creo que quieras hacerlo) que el fichero se cargue... el detalle es que posteriormente preguntas si $error esta declarada y en caso de ser cierto cambias el valor de $pdf... entonces el archivo pudo haber sido cargado pero a pesar de eso estás guardando "N/A" en tu BD... no sé si ese es el "no funciona".
Por favor lee las recomendaciones de este foro (enlace en mi firma). Bienvenido!