请帮忙。我也给出了下面的代码。试了这么多东西。不工作。
选择了一个空间数据库:
$db = new SQLite3('db2.sqlite');
尝试了这些加载扩展程序:
// $db->loadExtension('C:\PHP\ext\libspatialite-2.dll');
// $db->loadExtension('libspatialite-4.dll');
// $db->exec("SELECT InitSpatialMetadata()");
如果禁用加载扩展,也尝试了此功能:
// $db->exec("sqlite3_enable_load_extension(1)");
// $tvalue=$db->loadExtension('C:\\PHP\\sqliteext\\libspatialite-4.dll');
尝试加载扩展程序:
$db->exec("SELECT load_extension('C:\\PHP\\sqliteext\\libspatialite-4.dll')");
phpinfo();
$result = $db->query("SELECT load_extension('libspatialite-4.dll')");
var_dump($result->fetchArray());
尝试了这个查询:
$result = $db->query('select astext(geometry) from roads');
var_dump($result->fetchArray());
$rs = $db->query('SELECT spatialite_version()');
答案 0 :(得分:1)
最常见的问题之一是使用libspatialite版本,它是一个“合并”版本,包括sqlite。如果包含的sqlite版本与您用于加载libspatialite的版本不匹配,那么这是有问题的(特别是在64位窗口上)。两个版本具有不同的ABI =崩溃。
我没有一个很好的解决方案,但你可以采取一些措施来避免这种情况: 1.不要使用合并版本 2.确保两个版本的sqlite是相同的。