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