PDO::sqliteCreateFunction
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo_sqlite >= 1.0.0)
PDO::sqliteCreateFunction —
Registra una función definida por el usuario para utilizarla en sentencias SQL
Descripción
AdvertenciaEsta función ha sido declarada
EXPERIMENTAL. Su funcionamiento, nombre y
la documentación que le acompaña puede cambiar sin previo aviso en futuras versiones de PHP.
Utilícela bajo su propia responsabilidad.
Este método permite registrar una función de PHP con SQLite como una
FDU (Función Definida por el Usuario), y así poder invocarla
desde dentro de sentencias SQL.
LA FDU se puede usar en cualquier sentencia SQL que pueda invocar funciones, tales como
SELECT y UPDATE, y también en disparadores.
Parámetros
-
function_name
-
El nombre de la función usada en sentencias SQL.
-
callback
-
Una función de llamada de retorno para manejar la función SQL definida.
Nota:
Las funciones de llamada de retorno deberían devolver un tipo comprendido por
SQLite (esto es, del tipo escalar).
-
num_args
-
Una sugerencia para el analizador de SQLite si la función de llamada de retorno acepta
un número predeterminado de argumentos.
Valores devueltos
Devuelve true
en caso de éxito o false
en caso de error.
Ejemplos
Ejemplo #1 Ejemplo de PDO::sqliteCreateFunction()
<?php
function md5_e_invertir($string)
{
return strrev(md5($string));
}
$bd = new PDO('sqlite:sqlitedb');
$bd->sqliteCreateFunction('md5rev', 'md5_e_invertir', 1);
$filas = $bd->query('SELECT md5rev(filename) FROM files')->fetchAll();
?>
En este ejemplo, se tiene una función que calcula la suma md5 de una
cadena, y luego la inverte. Cuando se ejecuta la sentencia SQL,
devuelve el valor del nombre del fichero transformado por dicha función. Los datos
devueltos en $filas
contienen el resultado procesado.
La belleza de esta técnica consiste en que no se necesario procesar el
resultado usando un bucle foreach después de haber consultado los datos.
Nota:
Este método no está disponible con el controlador SQLite2.
Use la API de sqlite de estilo antiguo en su lugar.