Я использую модуль FTS4 SQLite3 и у меня возникла проблема с примером вспомогательной функции matchinfo ().
В данный момент я просто пытаюсь запустить пример matchinfo () из http://www.sqlite.org/fts3.html#matchinfo и это не работает.
Я пробовал это на Windows 7 с SQLite 3.5.9 (скомпилированная версия), на Ubuntu Linux OS 10.04.4 с SQLite 3.6.22 и на Mac OS 10.6.8с SQLite 3.7.10 (обе версии скомпилированы вручную).Во всех случаях модуль FTS4 включен, и все из документации работает (смещения и функция фрагмента, полнотекстовые поисковые запросы и т. Д.).В Ubuntu и Mac OS я не получаю никаких результатов при использовании примера matchinfo ().В Windows командная строка дает мне странные символы.Я попробовал это следующим образом: используя скрипт PHP, используя NaviCat для SQLite3 и в самой командной строке.В любом случае это одно и то же.
Это код PHP, который я использую для примера:
<?php
$db = new SQLite3("matchtest.db", SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE);
$db->exec("CREATE VIRTUAL TABLE t1 USING fts4(a, b)");
$db->exec("INSERT INTO t1 VALUES('transaction default models default', 'Non transaction reads')");
$db->exec("INSERT INTO t1 VALUES('the default transaction', 'these semantics present')");
$db->exec("INSERT INTO t1 VALUES('single request', 'default data')");
//$result = $db->escapeString("'default transaction \"these semantics\"'");
$result = $db->query("SELECT matchinfo(t1) FROM t1 WHERE t1 MATCH 'default transaction \"these semantics\"'");
while($row = $result->fetchArray()){
var_dump($row);
}
?>
Я не нашел ничего относительно этой проблемы в сети.Следовательно, я понятия не имею, как это исправить.Может быть, это потому, что у PHP есть проблемы с BLOB-объектами?
Я надеюсь, что вы, ребята, сможете мне помочь.Спасибо!