我在Windows 7中。我安装了WAMPServer。现在,我无法加载空间图书馆。它正在显示警告..
警告:SQLite3 :: loadExtension()[sqlite3.loadextension]:不是 多线程Web服务器支持
这是我的总配置程序,我做了什么......
从这个链接我得到了spaceite lib。我复制了“libspatialite-1.dll”并将其粘贴到包含php extention dll的“D:\ wamp \ bin \ php \ php5.3.8 \ ext”。
http://www.gaia-gis.it/spatialite-2.3.1/libspatialite-win-x86-2.3.1.zip
然后我编辑了php.ini文件。我更改了以下配置。
.
sqlite3.extension_dir = C:\libspatialite-win-x86-2.3.1\bin
.
extension=libspatialite-1.dll
.
enable_dl = On
最后,我将我下载的libspatialite-win-x86-2.3.1中的所有库复制并粘贴到我的php代码中的项目文件夹(libspatialite.a,libspatialite.dll.a,libspatialite.la)中脚本如下......
<?php
$db = new SQLite3('sixcommunes.sqlite');
$db->loadExtension('libspatialite.a');
$rs = $db->query('SELECT spatialite_version()');
while($row = $rs->fetchArray()){
print "<h3>SQLite version: $row[0]</h3>";
}
?>
我不知道我做错了什么或如何解决这个问题?
答案 0 :(得分:0)
没有看到任何答案,所以给我自己的答案。我在C#中使用了spatialite,我认为使用Spatialite Extensions你不必像通常的PHP扩展那样加载libspatialite,而是应该做类似的事情。 (这是c#代码,只是试图给你一个想法)
SQLiteCommand sqliteCommand = new SQLiteCommand(String.Format("SELECT
load_extension('{0}');", "libspatialite-2.dll"), connection);
sqliteCommand.ExecuteNonQuery();
您必须在sqlite上执行Select load_extension(“libspatialite-2.dll”)才能使用Spatialite。 希望这有帮助