når jeg bruger enten loadextension eller vælg load extension det giver intern server fejl (sqlite3, spatialite, php windows)

Indlæg af Hanne Mølgaard Plasc

Problem



Hjælp venligst. Jeg har også givet koden nedenfor. Prøvede så mange ting. Fungerer ikke.


udvalgt en spatialit database:


     $db = new SQLite3('db2.sqlite');


forsøgte disse belastningsudvidelser:


// $db->loadExtension('C:PHPextlibspatialite-2.dll');
//   $db->loadExtension('libspatialite-4.dll');
//   $db->exec("SELECT InitSpatialMetadata()");


har også forsøgt denne funktion, hvis ladning udvidelsen er deaktiveret:


// $db->exec("sqlite3\_enable\_load\_extension(1)");
//   $tvalue=$db->loadExtension('C:\PHP\sqliteext\libspatialite-4.dll');


forsøgt belastning forlængelse her:


    $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());


forsøgte denne forespørgsel:


    $result = $db->query('select astext(geometry) from roads');
    var\_dump($result->fetchArray());

    $rs = $db->query('SELECT spatialite\_version()');

Bedste reference


Et af de mest almindelige problemer er at bruge en version af libspatialite, der er en 'sammensmeltning' -bygning, som omfatter sqlite. Det er problematisk (især på 64 bit windows), hvis den version af sqlite der er inkluderet, stemmer ikke overens med den version, du bruger til at indlæse libspatialite. To versioner med forskellige ABI=nedbrud.


Jeg har ikke en god løsning, men der er ting, du kan gøre for at forsøge at undgå dette:
1. Brug ikke en sammensmeltningsopbygning
2. Sørg for, at de to versioner af sqlite er de samme.