Edit report at http://bugs.php.net/bug.php?id=53336&edit=1
ID: 53336 Comment by: scott...@php.net Reported by: cbruner at quadro dot net Summary: queries on create_function return only one result Status: Open Type: Bug Package: SQLite related Operating System: linux PHP Version: 5.3.3 Block user comment: N Private report: N New Comment: Can you give me a full test script, I'll need data too to track this down. Previous Comments: ------------------------------------------------------------------------ [2010-11-18 06:19:33] cbruner at quadro dot net Description: ------------ Using sqlite3, create a function to do a comparison (SQLite3::createFunction) Then query a table using the function. Only one result is returned when multiple results would be expected. Test script: --------------- // callback function for use by the sqlite3 class which returns the distance between 2 points on the earth function SqLDistance($Latitude,$Longitude,$Lat,$Long) { $result = 10000.0; // flag to be off the earth! if (isset($Latitude) && isset($Longitude)) { $lat1rad = $Latitude * 0.01745327;// degrees * pi over 180 $lat2rad = $Lat * 0.01745327;// degrees * pi over 180 $long1rad = $Longitude * 0.01745327;// degrees * pi over 180 $long2rad = $Long * 0.01745327;// degrees * pi over 180 // apply the spherical law of cosines to our $earthRadius = 6378.1; //km $result = $earthRadius * acos(sin($lat1rad) * sin($lat2rad) + cos($lat1rad) * cos($lat2rad) * cos($long2rad - $long1rad)); } return $result; } class MyDB extends SQLite3 { function __construct() { $this->open('zipcode.db'); $this->createFunction('Distance','SqlDistance',4); } function Borked($lat,$long,$count) { $result = $this->query("Select *,Distance(Lat,Long,$lat,$long) as Distance from agents order by Distance Limit 0,$count"); return $result->fetchArray(); } } Expected result: ---------------- An array of results with a length greater then 1. Actual result: -------------- An array of result. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=53336&edit=1