如何为spatialite配置wampserver

时间:2012-03-21 14:38:51

标签: php apache wampserver spatialite

我在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>";
}

?>

我不知道我做错了什么或如何解决这个问题?

1 个答案:

答案 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。 希望这有帮助