Pdo\Sqlite::createFunction
Registra una función de usuario para su uso en las sentencias SQL
&reftitle.description;
publicboolPdo\Sqlite::createFunctionstringfunction_namecallablecallbackintnum_args-1intflags0
Este método permite que las funciones PHP sean registradas con SQLite como
funciones definidas por el usuario, de modo que puedan ser llamadas en las consultas SQL.
La función definida puede ser utilizada en cualquier consulta SQL que permita llamadas a funciones,
por ejemplo SELECT, UPDATE, o disparadores.
Utilizando este método, es posible reemplazar las funciones SQL nativas.
&reftitle.parameters;
function_name
El nombre de la función utilizado en las sentencias SQL.
callback
La retrollamada para gestionar la función SQL definida.
La retrollamada debe retornar un tipo comprendido por SQLite (es decir,
tipo escalar).
Esta función debe ser definida como:
mixedcallbackmixedvaluemixedvaluesvalue
El primer argumento pasado a la función SQL.
values
Los argumentos adicionales pasados a la función SQL.
num_args
El número de argumentos que la función SQL toma.
Si este parámetro es -1,
entonces la función SQL puede tomar cualquier número de argumentos.
flags
Una máscara de bits de flags.
Actualmente, solo Pdo\Sqlite::DETERMINISTIC es soportado,
lo que especifica que la función retorna siempre el mismo resultado
dados los mismos valores de entrada en una sola sentencia SQL.
&reftitle.returnvalues;
&return.success;
&reftitle.examples;
Ejemplo de Pdo\Sqlite::createFunction
En este ejemplo, tenemos una función que calcula la suma SHA256 de una
string, luego la invierte. Cuando la sentencia SQL es ejecutada, retorna
el valor del nombre de fichero transformado por nuestra función.
Los datos retornados en $rows contienen el resultado procesado.
La ventaja de esta técnica es que no es necesario procesar el
resultado utilizando un bucle &foreach; después de la ejecución de la consulta.
createFunction('sha256rev', 'sha256_and_reverse', 1);
$rows = $db->query('SELECT sha256rev(filename) FROM files')->fetchAll();
?>
]]>
&reftitle.seealso;
Pdo\Sqlite::createAggregatePdo\Sqlite::createCollationsqlite_create_functionsqlite_create_aggregate