このphpコードを変換しようとしたため、sqliteデータベース(mbtilesマップタイルファイル)からimagedataを読み込もうとしています
$sql = "SELECT * FROM tiles WHERE zoom_level = $zoom AND tile_column = $column AND tile_row = $row";
$q = $conn->prepare($sql);
$q->execute();
$q->bindColumn(1, $zoom_level);
$q->bindColumn(2, $tile_column);
$q->bindColumn(3, $tile_row);
$q->bindColumn(4, $tile_data, PDO::PARAM_LOB);
while($q->fetch())
{
header("Content-Type: image/png");
echo $tile_data;
}
を使用してas3に
_conn = new SQLConnection();
_conn.addEventListener(SQLEvent.OPEN, openHandler);
_conn.addEventListener(SQLErrorEvent.ERROR, errorHandler);
var folder:File = File.applicationDirectory;
var dbFile:File = folder.resolvePath("test.mbtiles");
_conn.openAsync(dbFile, SQLMode.READ);
function openHandler(event:SQLEvent):void
{
trace("db opened");
var selectStmt:SQLStatement = new SQLStatement();
selectStmt.sqlConnection = _conn;
selectStmt.text = "SELECT * FROM tiles WHERE zoom_level = 5 AND tile_column = 17 AND tile_row = 20";
selectStmt.execute();
}
しかし、「RangeError: エラー #2006: 指定されたインデックスが範囲外です」というメッセージが表示されます。
これを解決する方法についてのアイデアはありますか? ありがとう!