Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 从mbtiles读取tile数据会生成;RangeError:Error“2006:提供的索引超出范围。”;_Sqlite_Actionscript 3_Mbtiles - Fatal编程技术网

Sqlite 从mbtiles读取tile数据会生成;RangeError:Error“2006:提供的索引超出范围。”;

Sqlite 从mbtiles读取tile数据会生成;RangeError:Error“2006:提供的索引超出范围。”;,sqlite,actionscript-3,mbtiles,Sqlite,Actionscript 3,Mbtiles,我正在尝试从sqlite数据库读取imagedata(它是一个mbtiles映射tiles文件) 为此,我尝试转换此php代码 $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); $

我正在尝试从sqlite数据库读取imagedata(它是一个mbtiles映射tiles文件) 为此,我尝试转换此php代码

$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;
}
使用

        _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:Error#2006:提供的索引超出范围。”

有没有办法解决这个问题? 谢谢

啊哈,别紧张。 查询应该是

"SELECT CAST(tile_data AS ByteArray) as data " +
                    "FROM tiles WHERE " +
                    "zoom_level = 5 " +
                    "and tile_column = 17 " +
                    "and tile_row = 20";