Suite

Comment configurer Spatialite pour PHP Version 5.6.14 (sur Windows 7 et Apache 2.4) ?

Comment configurer Spatialite pour PHP Version 5.6.14 (sur Windows 7 et Apache 2.4) ?


Je suis sous Windows 7, j'utilise PHP Version 5.6.14 sur Apache 2.4 et j'essaye d'accéder à une base de données Spatialite.

Tout fonctionne bien lorsque j'exécute une requête SQL "pas de spatial" dans ma procédure PHP, mais lorsque j'essaie d'utiliser le PtDistWithin dans une requête comme…

SELECTIONNER… WHERE PtDistWithin(distr.geometry, MakePoint(13.571386, 37.314926, 4326), 1000);

la réponse est

SQLSTATE[HY000] : Erreur générale : 1 aucune fonction de ce type : MakePoint

Je suis sûr que ma requête est correcte car si je l'exécute sur l'interface graphique Spatialite, cela fonctionne.

Dans mon php.ini, j'ai activé comme suit

extension=php_pdo_sqlite.dll extension=php_sqlite3.dll [sqlite3] sqlite3.extension_dir = D:ProgrammiPhpext

et j'ai mis dans mon PATH "D:ProgrammiPhpext". Dans ce répertoire il y a

09/07/2015 16:32 8.118.531 mod_spatialite.dll

et toutes les autres dll… voici la liste

22/03/2015 16:43 62.671 libfreexl-1.dll 07/12/2014 23:35 113.152 libgcc_s_seh_64-1.dll 03/09/2015 18:09 1.335.271 libgeos-3-5-0.dll 03/ 09/2015 18:09 195.167 libgeos_c-1.dll 20/12/2014 10:01 1.546.608 libiconv-2.dll 20/04/2015 08:58 211.181 liblzma-5.dll 20/04/2015 09:36 461.564 libproj-9.dll 03/09/2015 18:13 956.115 libsqlite3-0.dll 07/12/2014 23:35 1.014.272 libstdc++_64-6.dll 15/02/2015 10:36 1.699.757 libxml2-2.dll

Toute suggestion?


Je suppose que le mod_spatialite doit être chargé en exécutant SQLSELECT load_extension('mod_spatialite.dll'). Il faut aussi quesqlite3_enable_load_extensionest appelé en premier.

Lisez https://stackoverflow.com/questions/8756146/how-to-load-sqlite-extension-in-pdo et http://www.sqlite.org/lang_corefunc.html#load_extension.