① 求phpcms v9的数据库增删改查 是怎么实现的
表明默认当前load_model('xxxx')模块所在表名xxxx
若要指定表名 则:操作在mysql.class.php中$this->db->select(...)
1、查询
$this->select($where = '', $data = '*', $limit = '', $order = '', $group = '', $key='') 返回结果集数组
条件 ,字段(id,name,email....),范围 排序方式,分组方式,按建名排序
2、查询多条数据并分页
listinfo($where = '', $order = '', $page = 1, $pagesize = 20, $key='', $setpages = 10,$urlrule = '',$array = array())
3、获取单条记录查询
get_one($where = '', $data = '*', $order = '', $group = '')
4、直接执行sql查询
query($sql);
5、获取最后一次添加记录的主键号 insert_id()
6、执行更新记录操作 update($data, $where = '') $data 建议为数组,$where 可为数组可为字符串
7、执行删除记录操作 delete($where)
8、计算记录数 count($where = '')
9、获取最后数据库操作影响到的条数 affected_rows()
10、获取数据表主键 get_primary()
11、获取表字段 get_fields($table_name = '')
12、检查表是否存在 table_exists($table)
13、 检查字段是否存在 field_exists($field)
更多问题可以去php中文网问答社区提问http://www.php.cn/wenda.html,大神在线帮你解决,希望对你有帮助
② phpcms v9 一键清除栏目数据后怎么进行恢复啊
1、用FTP登陆到【caches/bakup/default】文件夹,把这个文件夹整个复制下来吧,简单点操作。
2、把复制的文件【default】复制一份作为备份,省的不能挽回。
3、找到你造成让你后悔手贱那一刻的时间,并且把那个时间的文件全部圈出来,都要改的!
4、把其中里面的【capable.sql】改名为【phpcmstables_20130407_3755_1.sql】就是这个数字格式。当然数字可以换!
5、把你从新命名的文件回传到你的主机【caches/bakup/default】文件夹下。
6、去你的后台-扩展-数据库工具-数据库导入,你发现你刚才命名的文件【phpcmstables_20130407_3755_1.sql】出现了,请点击后面的【数据库恢复】,谢天谢地,主表回来了。你可以点击下【管理内容】,现在各栏目算是回来了。
7、紧接着,请把那个灾难时间产生的文件依次序命名为【phpcmstables_20130407_3755_1.sql】格式。
8、先命名download.sql 再命名download_data.sql (就是先恢复没有data的),如果你将 download.sql命名为phpcmstables_20130407_3756_1.sql,那么最好将download_data.sql 命名为phpcmstables_20130407_3756_2.sql.
9、将重命名的文件上传到你的主机的【caches/bakup/default】文件夹下。
10、重复6的步骤,按照你命名的顺序,点击【1】,数据库会自动把连号的【2】也恢复的!
11、当你的文件依次恢复后,你能看到效果的。
12、可能你在恢复过程有报错,但是还是能用的,请继续!
③ phpcms v9 sql语句 调用栏目为什么调用出来是相对路径而不是绝对路径,而用标签调用栏目就是绝对路径
你看下你的数据库表category,里面存的是相对的还是绝对的,调出来的
④ 如何彻底解决phpcms v9升级后文章发布出现Mysql 1267错误
彻底解决phpcms v9升级后,文章发布出现:MySQL Query : SELECT * FROM `withli_a`.`v9_keyword` WHERE `keyword` = '吼吼' AND `siteid` = '1' LIMIT 1
MySQL Error : Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for operation '='
MySQL Errno : 1267
Message : Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for operation '='
(上面这个错误代码是phpcms v9中出现的)
出现上面的错误,是数据库字符集不一致的问题。
解决办法,进phpmyadmin里面执行SQL语句:
修改表的编码:
ALTER TABLE `v9_keyword` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
修改字段的编码:
ALTER TABLE `v9_keyword ` CHANGE `keyword ` `keyword ` CHAR( 100 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL
然后就可以了.
⑤ PHPCMSV9怎么在控制器里面写一个SQL
$db=pc_base::load_model('announce_model');//加载模型
$db->get_one(array('id'=>1));//获取id为1的数据
具体的操作函数查看/phpcms/libs/classes/db_mysqli.class.php,有很详细的注释
⑥ PHPCMS用SQL语句对文章进行批量删除
在批量删除文章前,首先得熟悉用数据库增加一篇文章时变动的有哪些表,所以请先看我以前写的一篇文章
先手动在PHPCMS后台添加一篇文章,参数尽可能的详细,附件,推荐位,相关文章,能加的都加上,然后查看数据库,把表信息复制下来,删除文章后再次复制数据库表信息,用BeyondCompare进行比较,方法跟上面提到的文章相同。
通过比较发现以下几个表有所变动
v9_attachment、v9_attachment_index、v9_hits、v9_log、v9_news、v9_news_data、v9_position_data、v9_search
实际上PHPCMSV9删除文章并不完善,其实还有2个表中的内容也应该删除,它们的作用是用来存储文章关键字,以及哪些文章用了同一个关键字,这2个表分别为
v9_keyword
和
v9_keyword_data
其中
v9_log
表不用理会,他记录的是
后台操作日志,记录着增加文章,删除文章,编辑文章的操作日志
重点关注的数据表
v9_attachment
附件信息
v9_attachment_index
附件id和文章id的关系
v9_hits
文章点击次数
v9_news
文章主要信息
v9_news_data
文章内容及相关信息
v9_position_data
记录有推荐位的文章有哪些
v9_search
文章搜索词,搜索表中记录的词显示对应的文章
v9_keyword
文章关键字
v9_keyword_data
文章和关键字的关系
删除一篇文章要牵扯到这么多表,分析将会是一个浩大的工程啊!
咱们就以删除指定分类下的所有文章为例;首先得获取到要删除的文章id有哪些,然后就是了解各个表跟文章id的关系,以下是我的分析
表v9_attachment_index
字段keyid格式
c-6-3、c-7-5,第2个参数6、7为分类id,第3个参数3、5为文章id;通过keyid可以获取到对应的aid,而这里的aid跟表v9_attachment的aid是一一对应的,所以通过aid可以同时删除表v9_attachment和表v9_attachment_index的内容
表v9_hits中字段hitsid格式c-1-2、c-1-3
其中第3个参数2、3为文章id
表v9_news和表v9_news_data中的字段id即为文章id,且他们的id是一一对应的,可以很方便的同时删除这2个表中的信息
表v9_position_data
字段id即为文章id
表v9_search
字段id即为文章id
表v9_keyword_data
字段
contentid
格式
2-1、3-1,前面的数字2、3为文章id;字段tagid为关键字id,与表
v9_keyword中的id字段对应,也可以很方便的同时删除这2个表的信息
⑦ phpcms v9 如何避免sql注入
校验特殊字符