首页 数据库 mysql教程 SQLite 运行时限制(Run-time Limits)_MySQL

SQLite 运行时限制(Run-time Limits)_MySQL

May 27, 2016 pm 07:11 PM
sqlite

SQLite 运行时限制(Run-time Limits)_MySQL

int sqlite3_limit(sqlite3*, int id, intnewVal);

 

该接口允许在连接的过程中(by connection basis),对连接(on a connection)的变量结构(various constructs)进行限制。第一个参数指定了被限制的设置或者查询的数据库的句柄。第二个参数指定了被限制的类别(categories),该结构定义了一系列可被限制尺寸大小的结构变量(The second parameter is one of the limit categories that define aclass of constructs to be size limited)。第三个参数是对该结构的新的限制。如下是定义的限制类别:

#define SQLITE_LIMIT_LENGTH                    0

#define SQLITE_LIMIT_SQL_LENGTH                1

#define SQLITE_LIMIT_COLUMN                    2

#define SQLITE_LIMIT_EXPR_DEPTH                3

#define SQLITE_LIMIT_COMPOUND_SELECT           4

#define SQLITE_LIMIT_VDBE_OP                   5

#define SQLITE_LIMIT_FUNCTION_ARG              6

#define SQLITE_LIMIT_ATTACHED                  7

#defineSQLITE_LIMIT_LIKE_PATTERN_LENGTH       8

#define SQLITE_LIMIT_VARIABLE_NUMBER           9

#define SQLITE_LIMIT_TRIGGER_DEPTH            10

#define SQLITE_LIMIT_WORKER_THREADS           11

 

 

如果一个给定的限制值是一个负值,限制不会生效。对于每一个限制的类别,在编译的过程中,已经通过C的宏定义(变量名称为SQLITE_MAX_NAME,当然限制名称为SQLITE_LIMIT_NAME),指定了该值的上限(a hard upper bound).如果指定的值超出了上限,就会将该值指定为上限(truncated to the hard upper bound Categories).

 

不管限制值有没有改变,sqlite3_limit的返回值都是上一次的限制值。因此,如果我们想知道当前设 置的限制值是多少,就可以通过设置该函数的第三个参数,指定为-1,就可以查询该结构体的限制值是 多少。

例如:

int permitexecutelength = sqlite3_limit(pdb, 1 , -1);
登录后复制

 

说明:返回当前允许执行的SQL语句的长度,保存在permitexecutelength变量中。

 

该设计既可以用于管理客户内部的数据库,也可以控制一些不可靠的访问数据来源。一个明显的例子就是网页浏览器,她自身拥有存储历史记录,并且将从网上下载的JavaScript脚本和本地的数据库进行分离(separate databases controlled by JavaScript applications downloaded off the Internet).内部的数据库可以给一个很大的默认限制值。来自外部的访问数据库的源为了避免拒绝服务攻击,一般会给一个更加小的默认限制值。开发者可以调用sqlite3_set_authorizer()接口,来控制不可靠的SQL语句。可以使用max_page_count PRAGMA宏,来限制不可靠的脚本生成的数据库的大小。

以上就是SQLite 运行时限制(Run-time Limits)_MySQL的内容,更多相关内容请关注PHP中文网(www.php.cn)!


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP 的大数据结构处理技巧 PHP 的大数据结构处理技巧 May 08, 2024 am 10:24 AM

PHP 的大数据结构处理技巧

如何优化 PHP 中的 MySQL 查询性能? 如何优化 PHP 中的 MySQL 查询性能? Jun 03, 2024 pm 08:11 PM

如何优化 PHP 中的 MySQL 查询性能?

如何在 PHP 中使用 MySQL 备份和还原? 如何在 PHP 中使用 MySQL 备份和还原? Jun 03, 2024 pm 12:19 PM

如何在 PHP 中使用 MySQL 备份和还原?

Java 枚举类型在数据库中的应用场景有哪些? Java 枚举类型在数据库中的应用场景有哪些? May 05, 2024 am 09:06 AM

Java 枚举类型在数据库中的应用场景有哪些?

如何使用 PHP 插入数据到 MySQL 表中? 如何使用 PHP 插入数据到 MySQL 表中? Jun 02, 2024 pm 02:26 PM

如何使用 PHP 插入数据到 MySQL 表中?

如何修复 MySQL 8.4 上的 mysql_native_password 未加载错误 如何修复 MySQL 8.4 上的 mysql_native_password 未加载错误 Dec 09, 2024 am 11:42 AM

如何修复 MySQL 8.4 上的 mysql_native_password 未加载错误

如何在 PHP 中使用 MySQL 存储过程? 如何在 PHP 中使用 MySQL 存储过程? Jun 02, 2024 pm 02:13 PM

如何在 PHP 中使用 MySQL 存储过程?

PHP数组分页的性能优化策略 PHP数组分页的性能优化策略 May 02, 2024 am 09:27 AM

PHP数组分页的性能优化策略

See all articles