sqlite_create_functionSQLiteDatabase->createFunction
Registra una FDU (función definida por el usuario) normal para su uso en sentencias SQL
&reftitle.description;
voidsqlite_create_functionresourcemanejador_bdstringnombre_funcioncallbackcallbackintnumero_argumentosMétodo que sigue el estilo orientado a objetos:SQLiteDatabasevoidcreateFunctionstringnombre_funcioncallbackcallbackintnumero_argumentossqlite_create_function permite registrar una función PHP
para que SQLite la emplee como FDU (función definida por el usuario).
De esta forma, la función se puede llamar desde las sentencias SQL.
La función FDU se puede utilizar en cualquier sentencia que pueda invocar funciones,
como SELECT y UPDATE, además de en triggers.
&reftitle.parameters;
manejador_bd
El recurso que identifica la base de datos SQLite (y que es el que
devuelve la función sqlite_open).
Este parámetro no se requiere cuando se emplea el método orientado
a objetos.
nombre_funcion
El nombre de la función a utilizar en las sentencias SQL.
callback
Función de callback que se encarga de manejar la función SQL.
Las funciones de callback deben devolver un tipo de datos entendido por SQLite (esto es,
tipo escalar).
numero_argumentos
Valor destinado al parseador de SQLite si la función de callback
acepta un número predeterminado de argumentos.
&sqlite.param-compat;
&reftitle.examples;
Ejemplo de sqlite_create_function
]]>
La función del ejemplo calcula el valor del resumen md5 de una cadena y
lo invierte antes de devolverlo. Cuando se ejecuta la sentencia SQL, devuelve el
valor del nombre de archivo devuelto por esta función. Los datos devueltos
en la variable $filas contienen los resultados procesados.
La gran ventaja de esta técnica es que no se tienen que procesar los resultados
mediante un bucle de tipo foreach() una vez obtenidos los resultados.
PHP registra una función especial llamada php cuando la base de datos
se abre por primera vez. La función php se puede emplear para llamar a cualquier función
PHP sin necesidad de tener que registrarla previamente.
Ejemplo de uso de una función PHP
]]>
El ejemplo llama a la función md5 de PHP para cada
columna llamada nombre_archivo de la base de datos y devuelve
el resultado en la variable $filas
PHP no realiza el proceso de codificación/decodificación de datos binarios
de forma automática, ya que esto podría penalizar seriamente el rendimiento de las aplicaciones.
Por tanto, se debe codificar/decodificar manualmente los parámetros y valores devueltos por estas
funciones. Para más detalles, se puede consultar la documentación relativa a las funciones
sqlite_udf_encode_binary y sqlite_udf_decode_binary.
No se recomienda que las propias funciones FDU se encarguen del procesamiento
de los datos binarios, a no ser que el rendimiento de la aplicación no
sea un elemento determinante.
Se pueden emplear las funciones sqlite_create_function y
sqlite_create_aggregate para sobrecargar las funciones
SQL nativas de SQLite.
&reftitle.seealso;
sqlite_create_aggregate