表创建和删除
在Typecho插件开发过程中,往往需要创建自己的表。上文提到Typecho_Db
类中的query
函数,可用于执行所有sql
语句,因此我们使用query()
来进行表的创建、修改或者删除。
注意,使用query
方式创建表的时候,需要在表明前手动添加$prefix
前缀,否则在后面的使用过程中会造成困惑。
还可以使用table.
来代替$prefix
,typecho
会自动识别并替换成指定的前缀。
同理,修改或者删除Typecho
数据库中表,按照同样的方式调用query
即可。
数据查询
select,查询表数据select
语句是可以说Typecho
插件开发中最常用的sql
调用。
说明:typecho
中,.号具有特定的意义,这里table.metas
表示这是一个metas
表。实际上,typecho是自动将table.
的字符使用str_replace
替换成了config.inc.php
中设定的前缀。
举例:
a. $db->select()->from('table.metas');
将生成SELECT * FROM typecho_metas WHERE (mid= '2' )
,其中typecho_
是表前缀;
b. 而$db->select()->from('metas');
将生成SELECT * FROM metas WHERE (mid= '2' )
,注意这里没有了表前缀。
指定表字段查询
有时为了提高查询性能,需要指定查询表中特定的几个字段,那么可以使用下面的方式:
如果联合查询中,两个表存在相同的字段名,那么可以使用table.
来指定表名:
指定查询条件
指定SQL
查询的where
语句,是最常用的api
调用。
如需要指定多个查询条件,直接多次调用where
即可,将生成and
关系的where
条件
使用OR关系的查询条件
可以使用orWhere()
函数来指定SQL
查询的或条件。
指定查询范围
在需要分页的场景下,分页是必需的操作。offset()
和limit()
分别用于指定起始位置和结束位置,即指定查询范围。
Typecho
中,还提供了一种简写的方法,见page()
函数。
/对查询结果进行排序
在Typecho
中,使用order()
函数和Typecho_Db::SORT_DESC
指定查询结果的排序方式。
联合查询
联合查询是SQL
的常用语法,在Typecho
中,同样使用内置函数join()
方便地进行联合查询。
1. update,更新表数据Typecho
中,使用update()
函数来进行更新表操作。但注意,update
操作,需要借助于query
执行。
2. insert,插入数据Typecho
中,使用insert()
函数来进行表插入操作。同样,insert
操作需要借助于query
函数。
3. delete,删除数据Typecho
中使用delete()
函数来删除数据表中的行。delete
操作用于删除数据表中指定的行,同样需要借助query
函数执行。
数据库调试
查看查询语句
在Typecho
调试过程中,打印sql
语句往往是很有帮助的。对于大于5.2版本的 php ,直接echo $query
即可,对于小于5.2版本,则需要显式调用__toString()
函数
请登录后查看评论内容