站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
SpeedPHP/重写CRUD操作
”(章节)
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
===findAll结果反序列化=== 通常在开发中,我们会遇到一些[[数据结构]]有某些数据是不作为条件进行查找,但也需要存在的。如通讯录的数据结构中,地址、电话等数据是作为条件查找的,而身高体重之类的数据,就是不作为条件查找的。那么,这些不作为查找条件的的数据,我们可以用PHP的序列化方法,把这些数据都统一存放到一个字段中,以简化数据表结构。 当然,哪些数据是不作为条件查找,这样视乎数据结构本身的业务逻辑——也就是这个数据表是做什么用的。在通讯录上面身高体重是不作为查找条件,但如果数据结构是体检表而不是通讯录,那么身高体重就是作为条件而地址电话反而是不作为查找条件的。 PHP序列化方法(serialize/unserialize)是PHP中对变量(包括实例对象、数组、[[字符串]]等)进行存放的一种方法,如serialize可以将数组变量变成字符串,让其可以存放到数据库或其他地方,而unserialize就可以将这些字符串“还原”成原来的数组变量供使用。 <pre><?php class m_tongxunlu extends spModel { public $pk = "tid"; public $table = "tongxunlu"; public function create($row) // 参数与create的相同 { $additions = array( 'height' => $row['height'], // 身高 'weight' => $row['weight'], // 体重 ); $row['additions'] = serialize($additions); // additions是存放身高体重等附加数据的字段 parent::create($row); // 调用父类spModel的create方法来插入新记录 } public function findAll($conditions = null, $sort = null, $fields = null, $limit = null) // 参数和findAll相同 { $results = parent::findAll($conditions, $sort, $fields, $limit); // 调用spModel的findAll来进行查找 if( !$results )return false; // 无返回结果则直接返回FALSE foreach( $results as $key => $value ){ // 循环将additions字段取出并反序列化 $results[$key]['additions'] = unserialize($value['additions']); } return $results; // 返回处理后的数据 } } ?> </pre> 上例中我们看到,在重写的create方法中,我们将身高和体重的信息,序列化后记录到additions字段中;在查询的时候,也就是重新的findAll方法中,我们将其反序列化后再返回。 通过以上的重写spModel,开发者在调用m_tongxuelu类的时候,就无需考虑身高/体重等信息的存放方式,可以按原有的create和findAll方式来进行操作。
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)