tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Funkce REPLACE() v SQLite

před 10 lety

David Grudl
Nette Core | 6806

V databázi SQLite 2 chybí poměrně užitečná funkce REPLACE() pro úpravu textů.

SELECT REPLACE('dibiphp.com', 'dibi', 'nette');
        -> 'nette.org'

Existuje ale řešení, jak ji doplnit:

function sqliteReplace($s, $from, $to)
{
    return str_replace($from, $to, $s);
}

// pripojime se k databázi
$conn = dibi::connect('driver=sqlite&database=database.sdb');

// zaregistrujeme PHP funkci sqliteReplace() se třemi parametry jako SQLite function REPLACE()
$conn->driver->registerFunction('REPLACE', 'sqliteReplace', 3);

// použijeme v příkazu
$conn->query("UPDATE table SET text = REPLACE(text, 'dibi', 'nette')");