由于默认情况下该函数未在 pdo_sqlite 中编译,因此尝试构建需要 soundex() 的功能测试失败。正在使用 LiipFunctionalTestBundle 构建功能测试。
报告的错误是:
PDOException:SQLSTATE [HY000]:一般错误:1 没有这样的功能:Soundex
SQLite 文档说:
soundex(X) 函数 ... 默认情况下从 SQLite 中省略
我试过(来自php docs)$db->sqliteCreateFunction('soundex', 'sqlite_soundex', 1);
在哪里
function sqlite_soundex($string)
{
return soundex($string);
}
但得到
...sqlite_soundex 不可调用...
那么,如何编译一个版本的 Windowsphp_pdo_sqlite.dll
呢?(SQLite 文档展示了如何编译“普通”sqlite.dll。)或者有更好的解决方案吗?
编辑 - 使用 MS Visual Studio 12 Express,编译时间选项未知!
>cl sqlite3.c -SQLITE_SOUNDEX -link -dll -out:php_pdo_sqlite.dll
Microsoft (R) C/C++ Optimizing Compiler Version 17.00.50727.1 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
cl : Command line warning D9002 : ignoring unknown option '-SQLITE_SOUNDEX'
sqlite3.c
Microsoft (R) Incremental Linker Version 11.00.50727.1
Copyright (C) Microsoft Corporation. All rights reserved.
/out:sqlite3.exe
-dll
-out:php_pdo_sqlite.dll
sqlite3.obj