(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
sqlite_udf_decode_binary — Dekodiert Binärdaten und reicht diese als Parameter weiter zu einer benutzerdefinierten Funktion (UDF)
$data
)sqlite_udf_decode_binary() dekodiert die Binärkodierung der Parameter, die entweder mit sqlite_udf_encode_binary() oder sqlite_escape_string() durchgeführt wurde.
Parameter, die an eine UDF übergeben wurden und Binärdaten enthalten könnten, sollte mit dieser Funktion aufgerufen werden. Ansonsten würden die binären Information durch die im PHP implementierte Kodierung in ihrer natürlichen und nicht kodierten Form verändert werden.
PHP führt diese (De-)Kodieraufrufe nicht automatisch durch, da dieses die Performance drastig beeinflussen würde.
data
Die kodierte Zeichenkette, die dekodiert werden. Diese wurde entweder von sqlite_udf_encode_binary() oder sqlite_escape_string() erzeugt.
Die dekodierte Zeichenkette (string).
Beispiel #1 Beispiel für eine binärsichere max_length Summenfunktion
<?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'));
?>