0

我在 Windows 7 中。我安装了 WAMPServer。现在,我无法加载空间库。它显示警告..

警告:SQLite3::loadExtension() [sqlite3.loadextension]:在多线程 Web 服务器中不受支持

这是我的总体配置过程,我做了什么......

从这个链接我得到了spatialite lib。我复制了“libspatialite-1.dll”并将其粘贴到包含 php 扩展 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>";
}

?>

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

4

1 回答 1

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。希望这可以帮助

于 2012-03-26T10:39:01.610 回答