[NOTE] SQLite基础及注入相关
前言
啊,好多不会,学不完啊
一些参考资料:
sqlite_master
只读表,无法使用UPDATE、INSERT或DELETE改写
但是会随其他表或索引的变动而自动更新
一般要看当前(?)数据库中表的信息,就在这里看
结构:
CREATE TABLE sqlite_master (
type text,
name text,
tbl_name text,
rootpage integer,
sql text
);
- type:项目类型,如table、index、view、trigger
- name:项目名称,如表名、索引名、视图名、触发器名
- tbl_name:项目所属的表名,如索引所对应的表名等
- rootpage:项目在数据库页中存储的编号
- sql:项目创建时的SQL语句(自动创建为NULL)
判断某表是否存在的例子:
select count(*) from sqlite_master where name='{表名}' and type='table'
临时表不会出现在sqlite_master表中
临时表及其索引和触发器存放在另外一个叫sqlite_temp_master的表中
sqlite_temp_master跟sqlite_master差不多
但它只是对于创建那些临时表的应用可见
常用函数
- sqlite_version():当前sqlite版本
- substr(str, start, length):字符串分割,下标都以1为始