sqlite_udf_decode_binary

(PHP 5)

sqlite_udf_decode_binary -- Décode des données binaires, passées à une UDF SQLite

Description

string sqlite_udf_decode_binary ( string data )

sqlite_udf_decode_binary() décode des données binaires, qui auraient été encodées avec sqlite_udf_encode_binary() ou sqlite_escape_string().

Vous devez appeler cette fonction sur les paramètres passés à votre UDF, si vous devez manipuler des données binaires, car le codage binaire de PHP va masquer le contenu original de la donnée.

PHP ne fait pas cette opération de codage/décodage automatiquement, car cela réduirait considérablement les performances.

Exemple 1. Exemple de fonction d'agrégation SQLite, compatible avec les données binaires

<?php
$data
= array(
   
'one',
   
'two',
   
'three',
   
'four',
   
'five',
   
'six',
   
'seven',
   
'eight',
   
'nine',
   
'ten'
   
);
$db = sqlite_open(':memory:');
sqlite_query($db, "CREATE TABLE strings(a)");
foreach (
$data as $str) {
    
$str = sqlite_escape_string($str);
    
sqlite_query($db, "INSERT INTO strings VALUES ('$str')");
}

function
max_len_step(&$context, $string)
{
  
$string = sqlite_udf_decode_binary($string);
  if (
strlen($string) > $context) {
    
$context = strlen($string);
  }
}

function
max_len_finalize(&$context)
{
  return
$context;
}

sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));

?>

Voir aussi sqlite_udf_encode_binary(), sqlite_create_function() et sqlite_create_aggregate().