use strict; use warnings; use DBI; my $dbh = DBI->connect( 'DBI:mysql:test', 'foo', 'bar' ) or die; my $lon = -0.232323127347249; my $sql = qq| SELECT lon,lat,location_id FROM lat_long WHERE lon>= $lon|; my $sth = $dbh->prepare($sql); $sth->execute(); print STDERR "Rows not using placeholders ".$sth->rows."\n"; $sql = qq| SELECT lon,lat,location_id FROM lat_long WHERE lon >= ?|; $sth = $dbh->prepare($sql); $sth->execute($lon); print STDERR "Rows using placeholders ".$sth->rows."\n"; __END__ #### create table lat_long(lon double not null, lat double not null, location_id integer); insert into lat_long (location_id, lat, lon) values(44977, 48.3547, 11.7875); insert into lat_long (location_id, lat, lon) values(53280, 48.1369, 11.5456); insert into lat_long (location_id, lat, lon) values(53281, 48.1394, 11.5454); insert into lat_long (location_id, lat, lon) values(53282, 47.6869, 11.7609); insert into lat_long (location_id, lat, lon) values(53283, 48.3547, 11.7875); insert into lat_long (location_id, lat, lon) values(60105, 48.3547, 11.7875); insert into lat_long (location_id, lat, lon) values(80766, 48.3507, 11.7328); insert into lat_long (location_id, lat, lon) values(71776, 48.1435, 11.5574); insert into lat_long (location_id, lat, lon) values(65883, 48.1269, 11.6363); insert into lat_long (location_id, lat, lon) values(65884, 48.1515, 11.6178); #### $ perl 656378.pl Rows not using placeholders 10 Rows using placeholders 10