PDO で binValue を使ってもバインドされないバグが起きています.

binValue の後に errorinfo を挟んだ結果 "HY093" とでました.debugDumpParams もしたのですが,バインドされていない文字列が結果として帰って来ました.

bindValue している変数は実数なので,調べた結果 PARAM_STR にしたのですが,PARAM_INT で試してもダメでした.

$pdo = new PDO($dsn['host'], $dsn['user'], $dsn['pass'], $dsn['driver_options']);
try {
  $pdo->exec('SET NAMES utf8');
  $sql =  "SELECT * FROM location WHERE MBRContains(GeomFromText('LineString(? ?, ? ?)'), latlng)";
  $select_loc = $pdo->prepare($sql);
  $select_loc->bindValue(1, $ne_lng, PDO::PARAM_STR);
  $select_loc->bindValue(2, $ne_lat, PDO::PARAM_STR);
  $select_loc->bindValue(3, $sw_lng, PDO::PARAM_STR);
  $select_loc->bindValue(4, $sw_lat, PDO::PARAM_STR);
  $select_loc->execute();

  $loc = $select_loc->fetch();

} catch(PDOException $e) {
  $error = $e->getMessage();
}