skomoroh2
Новичок
хранимые функции для sqlite
как сделать хранимку для sqlite с sql-запросами?
если юзать PDO::sqliteCreateFunction, то придется каждый раз внутри функции содавать обьект pdo?
если конкретно, то нужно:
есть табличка:
CREATE TABLE "words" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , "word" VARCHAR)
с уникальным ключом по полю word
CREATE UNIQUE INDEX "key_word" ON "words" ("word" ASC)
нужно написать функцию, которая возвращает id слова по его значению, если слова нету, то его вставить и вернуть id
то есть, сделать следущий код как хранимку
как сделать хранимку для sqlite с sql-запросами?
если юзать PDO::sqliteCreateFunction, то придется каждый раз внутри функции содавать обьект pdo?
если конкретно, то нужно:
есть табличка:
CREATE TABLE "words" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , "word" VARCHAR)
с уникальным ключом по полю word
CREATE UNIQUE INDEX "key_word" ON "words" ("word" ASC)
нужно написать функцию, которая возвращает id слова по его значению, если слова нету, то его вставить и вернуть id
то есть, сделать следущий код как хранимку
PHP:
$sth1 = $db->prepare( "select id from word where word=?" );
$sth2 = $db->prepare("insert into word ( word ) values ( ? )");
$sth1->execute( array( $word ) );
if( $sth1->rowCount() > 0 )
{
$id = $sth1->fetchColumn();
}
else
{
$sth2->execute( array( $word ) );
$word_ids[$key] = $db->lastInsertId();
}