(PHP 5 >= 5.1.0, PECL pdo_sqlite >= 1.0.0)
PDO::sqliteCreateFunction — SQL deyimlerinde kullanmak üzere bir kullanıcı tanımlı işlevi kayda geçirir
Bu işlev DENEYSELDİR. Bu işlevin davranışı, ismi ve belgeleri PHP'nin sonraki sürümlerinde hiçbir duyuru yapılmaksızın değiştirilebilir. Bu riski göze alamayacaksanız bu işlevi kullanmayın.
SQL deyimlerinde kullanmak üzere bir kullanıcı tanımlı işlevi kayda geçirir.
Kullanıcı tanımlı işlevler, işlev çağırabilen SQL deyimlerinde kulllanılır. SELECT ve UPDATE deyimlerinden başka tetikleyiciler de işlev çağırabilmektedir.
SQL deyiminde kullanılacak işlevin adı.
Tanımlanan SQL işlevini elde edecek geriçağırım işlevi.
Bilginize: Geriçağırım işlevlerinin SQLite'ın tanıdığı veri türlerini döndürmesi gerekir (bir sayıl tür gibi).
Geriçağırım işlevi belli sayıda değiştirge gerektiriyorsa SQLite çözümleyiciye bir ipucu vermek için kullanılır.
Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.
Örnek 1 - PDO::sqliteCreateFunction() örneği
<?php
function md5_and_reverse($string)
{
return strrev(md5($string));
}
$db = new PDO('sqlite:sqlitedb');
$db->sqliteCreateFunction('md5rev', 'md5_and_reverse', 1);
$rows = $db->query('SELECT md5rev(filename) FROM files')->fetchAll();
?>
Bu örnekte, bir dizgenin MD5 toplamını hesaplayıp bunu ters çeviren bir işlev tanımlanmaktadır. SQL deyimi çalıştırıldığında işlevimiz dosya isminin dönüştürülmüş değerini döndürmektedir. $rows sonucu içerecektir.
Bu tekniğin güzel tarafı veriyi sorguladıktan sonra sonucu işlemek için bir foreach döngüsü kullanımını gerektirmemesidir.
PDO::sqliteCreateFunction() ve PDO::sqliteCreateAggregate() işlevlerini yerleşik SQLite SQL işlevlerini geçersiz kılmak için kullanabilirsiniz.
Bilginize:
Bu yöntem, SQLite2 sürücüsü ile kullanılamaz; eski tarz SQLite arayüzünü kullanmalısınız.