Tengo este código PHP en mi máquina virtual Ubuntu 15.10
<?php
$lon = 4.221542;
$lat = 32.21115;
$db_data_sessions = new SQLite3('./DataBase/MyDB.sqlite');
# Loading SpatiaLite as an extension ...
$db_data_sessions->loadExtension('mod_spatialite.so');
$q="SELECT comune FROM comuni32632 WHERE
WITHIN(Transform(GeomFromText('POINT(".$lon."
".$lat.")',4326),32632),comuni32632.Geometry)";
echo "Query = " .$q;
echo "\n\n";
try {
$stmt = $db_data_sessions->prepare($q);
$results = $stmt->execute();
if ($results->fetchColumn() > 0)
{
echo "OK";
echo "\n\n";
$theName = '';
while($row=$results->fetchArray(SQLITE3_ASSOC))
{
$theName = $row['comune'];
}
//return $theName;
echo "Result = " .$theName;
echo "\n\n";
}
else {
//return "NO DATA";
echo "Result = NO DATA";
echo "\n\n";
}
}
catch(PDOException $e) {
print "Something went wrong or Connection to database failed! ".$e->getMessage();
//return "ERROR";
echo "Result = ERROR";
echo "\n\n";
}
$db_data_sessions = null;
?>
y cuando trato de ejecutar sólo puedo ver la primera salida de eco, por lo que mi texto de consulta actual y no más. En la consola del navegador puedo ver "Error 500"
Cuando intento ejecutar desde la línea de comandos
php test.php
el resultado es
PHP Warning: SQLite3::loadExtension(): SQLite Extension are disabled in /var/www/html/test.php on line 10
Query = SELECT comune FROM comuni32632 WHERE WITHIN(Transform(GeomFromText('POINT(4.221542 32.21115)',4326),32632),comuni32632.Geometry)
PHP Warning: SQLite3::prepare(): Unable to prepare statement: 1, no such function: GeomFromText in /var/www/html/test.php on line 19
PHP Fatal error: Call to a member function execute() on boolean in /var/www/html/test.php on line 20
Tenga en cuenta que si intento ejecutar la consulta en Sqlite3 cargando la extensión Spatialite todo funciona bien
Tenga en cuenta que si intento ejecutar el código de prueba PHP disponible aquí http://www.gaia-gis.it/gaia-sins/spatialite-cookbook/html/php.html todo funciona bien así que creo que PHP y Spatialite están trabajando bien juntos
¿Qué está fallando en mi código?