## SQL参数绑定
参数绑定就是绑定一个PHP变量到用作预处理的SQL语句中的对应命名占位符或问号占位符。可以有效的防止SQL注入。
**注:要求无论何时尽量使用参数绑定的形式来构建SQL语句**
在系统中直接运行SQL语句操作数据库的函数(`pdo_fetch()`、`pdo_fetchall()`、`pdo_fetchcolumn()`、`pdo_query()`)需要开发人员手动绑定参数,以`pdo_fetch()`函数为例:
~~~
$row = pdo_fetch("SELECT * FROM ".tablename('users')." WHERE username = :username", array(':username' => '米粥'));
~~~
> 上例中 :username 参数占位符,系统中只支持 :var 以冒号+变量名的占位符
> 第二个参数中 ‘:username’ 对应的值,则为要传入的真正的值
~~~
$row = pdo_fetch("SELECT * FROM ".tablename('users')." WHERE username LIKE :username", array(':username' => '%米%'));
~~~
> 上例中演示如何绑定Like查询
~~~
$row = pdo_query("DELETE FROM ".tablename('users')." WHERE uid = :uid", array(':uid' => '1'));
~~~
~~~
$row = pdo_query("DELETE FROM ".tablename('users')." WHERE uid IN (:uid_1, :uid_2, :uid_3)", array(':uid_1' => '1', ':uid_2' => '2', ':uid_3' => '3'));
~~~
## 禁用高危SQL函数、表达式
在微擎系统中,为了保证SQL注入安全,系统还禁用了一些SQL语句中高危的表达式、函数,开发者在开发模块时,尽量不要使用以下关键字。
### 禁用函数
* load\_file
* hex
* substring
* if
* ord
* char
* updatexml
### 禁用关键字
* @
* into outfile
* into dumpfile
* union select
* union all
* union distinct
### 禁用一切SQL注释
* /\*
* \*/
* #
* –
- 微擎框架
- 目录结构
- 配置选项
- 数据库配置($config[db])
- 系统COOKIE配置项($config[cookie])
- 系统设置($config[setting])
- 预定义常量
- 全局变量
- 全局配置
- 系统配置
- 公众号相关
- Web 端可见
- App 端可见
- 网页授权
- URL 路由
- url生成助手
- createMobileUrl
- createWebUrl
- 文件加载器
- func(加载公共函数)
- class(加载公共类)
- model(加载系统model函数)
- web(加载web端公共函数)
- app(加载app端公共函数)
- library(库文件加载)
- object(实例化加载)
- singleton(单例加载)
- 缓存机制
- cache_write
- cache_load
- cache_delete
- cache_clean
- cache_system_key
- 数据库
- SQL注入安全
- 连接其它数据库
- 函数列表
- pdo_get
- pdo_getcolumn
- pdo_getall
- pdo_getslice
- pdo_fetch
- pdo_fetchcolumn
- pdo_fetchall
- pdo_insert
- pdo_update
- pdo_delete
- pdo_query
- pdo_run
- pdo_fieldexists
- pdo_indexexists
- pdo_tableexists
- pdo_fieldmatch
- pdo_debug
- 链式查询
- from
- select
- where
- whereor
- having
- groupby
- orderby
- leftjoin
- innerjoin
- on
- limit
- page
- get
- getall
- getcolumn
- count
- exists
- getLastQueryTotal
- getLastQuery
- 错误处理
- 日志记录
- 模板引擎
- 模板标签
- 输出变量
- 判断语句
- 循环语句
- php语句
- 引用模板
- 创建URL
- 转义附件URL
- 输出花括号
- 数据调用
- 调用微站导航
- 调用幻灯片
- 调用文章列表
- 调用分类列表
- 调用快捷菜单
- 常用变量
- 附录
- 数据库字典
- 自定义分享