No, no se soluciona así exactamente, porque dependiendo del tipo de dato, debe llevar o no apóstrofos...
No te olvides, por favor, que MySQL no entiende variables de PHP, por lo que no puede saber que cuando pones esto:
Código SQL:
Ver originalINSERT INTO tabla (nombre, caracteristicas, antiguedad)
VALUES (edificio, kjhkkhjhjh kjhjh, 50)
;
los dos primeros quieres que se tomen como cadenas de texto. Para MySL serían nombres de columnas, lo que te daría un error de ejecución.
Y si le pones a todo apostrofos, puedes afectar la performance de los datos numéricos, ya que obligas a MySQL a hacer conversiones implícitas, y se generarán errores de datos si la variable llega vacía sin que te des cuenta.
En inserciones simples no lo notarás, pero en las masivas puede costarte performance.
No es difícil hacer eso dinámico, pero tiene que ser hecho con cuidado.