table
表名参数拼装后会跟在UPDATE之后,可以是字符串,也可以是数组。
┌───────────────────────┬───────────────────────┐
│ 参数类型 │ SQL语句的结果 │
├───────────────────────┼───────────────────────┤
│null │UPDATE 前缀+类名 │
├───────────────────────┼───────────────────────┤
│'table1' │UPDATE table1 │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┥
│array('table1') │UPDATE table1 │
├───────────────────────┼───────────────────────┤
│array('t1'=>'table1') │UPDATE table1 AS t1 │
├───────────────────────┼───────────────────────┤
│array(array('LOW_PRIORITY','IGNORE'),'table1')│UPDATE LOW_PRIORITY IGNORE table1 │
└───────────────────────┴───────────────────────┘
set
设置参数拼装后会跟在SET语句之后,可以是字符串,也可以是数组或二维关联数组。触发条件是赋值参数为空值。
┌───────────────────────┬───────────────────────┬───────────┐
│ 参数类型 │ SQL语句的结果 │ 占位参数数组值 │
├───────────────────────┼───────────────────────┼───────────┤
│'c1=md5(c2)' │SET c1=md5(c2) │ │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┥
│array('c1=DEFAULT','c2=DEFAULT') │SET c1=DEFAULT,c2=DEFAULT │ │
├───────────────────────┼───────────────────────┼───────────┤
│array('c1'=>'s1','c2'=>array('s2','s3')) │SET c1=?,c2=CONCAT_WS(',',?,?) │array('s1','s2','s3') │
└───────────────────────┴───────────────────────┴───────────┘
where
条件参数拼装后会跟在WHERE之后,可以是字符串,也可以是无限层的混合数组,具体方法如下。
┌───────────────────────┬───────────────────────┬───────────┐
│ 参数类型 │ SQL语句的结果 │ 占位参数数组值 │
├───────────────────────┼───────────────────────┼───────────┤
│null │ │ │
├───────────────────────┼───────────────────────┼───────────┤
│'c1=1 AND c2>=c3' │WHERE c1=1 AND c2>=c3 │ │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┥
│array('c1=1','c2>=c3') │WHERE c1=1 AND c2>=c3 │ │
├───────────────────────┼───────────────────────┼───────────┤
│array(array('c1=1','c2>=c3'),'c4=1') │WHERE (c1=1 OR c2>=c3) AND c4=1 │ │
├───────────────────────┼───────────────────────┼───────────┤
│array(array(array('c1=1','c2>=c3'),'c4=1')) │WHERE (c1=1 AND c2>=c3 OR c4=1) │ │
├───────────────────────┼───────────────────────┼───────────┤
│array('c1'=>'s1','c2'=>array('s2','s3')) │WHERE c1=? AND c2 IN (?,?) │array('s1','s2','s3') │
├───────────────────────┼───────────────────────┼───────────┤
│array('c1 LIKE ?'=>'%s%') │WHERE c1 LIKE ? │array('%s%') │
├───────────────────────┼───────────────────────┼───────────┤
│array('c1 BETWEEN ? AND ?'=>array(100,200)) │WHERE c1 BETWEEN ? AND ? │array(100,200) │
└───────────────────────┴───────────────────────┴───────────┘
other
其他参数拼装后会跟在整个SQL语句之后,可以是字符串,也可以是数组或二维混合数组。该参数可以接受page下标的分页指令。
┌───────────────────────┬───────────────────────┬───────────┐
│ 参数类型 │ SQL语句的结果 │ 占位参数数组值 │
├───────────────────────┼───────────────────────┼───────────┤
│null │ │ │
├───────────────────────┼───────────────────────┼───────────┤
│'ORDER BY c1 DESC' │ORDER BY c1 DESC │ │
┝━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┥
│array('ORDER BY'=>'c1','LIMIT'=>array(1,5)) │ORDER BY ?,LIMIT ?,? │array('c1',1,5) │
└───────────────────────┴───────────────────────┴───────────┘
class
当表名为空值时会以该类名加前缀作为表名,当该值还为空时PHP 5.3会取延迟绑定的类名加前缀作为表名。
sql
修改的SQL语句,支持问号形式的占位符。
param
配合SQL语句和占位符对应的参数数组。