Forum und email

sqlite_udf_decode_binary

(PHP 5, PECL sqlite:1.0-1.0.3)

sqlite_udf_decode_binary — Decodifica los datos binarios que se pasan como parámetro a las funciones FDU (función definida por el usuario)

Descripción

string sqlite_udf_decode_binary ( string $datos )

sqlite_udf_decode_binary() decodifica la codificación binaria aplicada por las funciones sqlite_udf_encode_binary() o sqlite_escape_string().

Se debe utilizar esta función para los parámetros que se pasan a las funciones FDU (función definida por el usuario) si éstos pueden contener datos binarios.

PHP no realiza este proceso de codificación/decodificación de forma automática, ya que esto podría penalizar seriamente el rendimiento de las aplicaciones.

Ejemplos

Example#1 Ejemplo de función max_length segura con datos binarios

<?php
$datos 
= array(
   
'uno',
   
'dos',
   
'tres',
   
'cuatro',
   
'cinco',
   
'seis',
   
'siete',
   
'ocho',
   
'nueve',
   
'diez',
   );
$manejador_bd = sqlite_open(':memory:');
sqlite_query($manejador_bd, "CREATE TABLE tabla_cadenas(a)");
foreach (
$datos as $cadena) {
    
$cadena = sqlite_escape_string($cadena);
    
sqlite_query($manejador_bd, "INSERT INTO tabla_cadenas VALUES ('$cadena')");
}

function 
max_longitud_temporal(&$contexto, $cadena) 
{
    
$cadena = sqlite_udf_decode_binary($cadena);
    if (
strlen($cadena) > $contexto) {
        
$contexto = strlen($cadena);
    }
}

function 
max_longitud_final(&$contexto) 
{
    return 
$contexto;
}

sqlite_create_aggregate($manejador_bd, 'max_longitud', 'max_longitud_temporal', 'max_longitud_final');

var_dump(sqlite_array_query($manejador_bd, 'SELECT max_longitud(a) from tabla_cadenas'));

?>