php使用反射插入对象示例分享


Posted in PHP onMarch 11, 2014
/**  
    * 插入insertModel(),利用反射,效率稍差 
    * @param class $model 对象
    * @param bool $is_returnLastInsertId 是否返回添加ID 
    * @return int 默认返回成功与否,$is_returnLastInsertId 为true,返回添加ID 
    */ 
    public function insertModel($model,$is_returnLastInsertId=FALSE) {
        try {
            require_once dirname(dirname(__FILE__)).'\Models\BaseModel.php';
            if(!is_subclass_of($model, "BaseModel")){
                exit($this->getError(__FUNCTION__, __LINE__));
            }
            $className=get_class($model);
            $tName = $this->formatTabName($className);
            $reflectionClass=new ReflectionClass($className);
            $properties=$reflectionClass->getProperties();
            unset($properties[0]);
            $fields="";
            $vals="";
            foreach ($properties as $property) {
                $pName=$property->getName();
                $fields.=$pName.",";
                $vals.='\''.$model->$pName.'\''.',';
            }
            $fields=rtrim($fields,',');
            $vals=rtrim($vals,',');
            $this->sql = "insert into {$tName} ({$fields}) values ({$vals})";
            if($is_returnLastInsertId){
                $this->conn->exec($this->sql);
                $lastId = (int)$this->conn->lastInsertId();                return $lastId;
            }  else {
                $row = $this->conn->exec($this->sql);
                return $row;
            }
        } catch (Exception $exc) {
            echo $exc->getMessage();
        }
    }
PHP 相关文章推荐
综合图片计数器
Oct 09 PHP
抓取YAHOO股票报价的类
May 15 PHP
php数据库备份还原类分享
Mar 20 PHP
php字符串截取函数用法分析
Nov 25 PHP
PHP+shell实现多线程的方法
Jul 01 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
Feb 15 PHP
PHP二进制与字符串之间的相互转换教程
Oct 14 PHP
PHPCMS V9 添加二级导航的思路详解
Oct 20 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
利用laravel搭建一个迷你博客实战教程
Aug 13 PHP
php设计模式之策略模式应用案例详解
Jun 17 PHP
浅谈laravel数据库查询返回的数据形式
Oct 21 PHP
php数组编码转换示例详解
Mar 11 #PHP
使用Discuz关键词服务器实现PHP中文分词
Mar 11 #PHP
PHP输出缓存ob系列函数详解
Mar 11 #PHP
php初始化对象和析构函数的简单实例
Mar 11 #PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 #PHP
php调用c接口无错版介绍
Mar 11 #PHP
PHP goto语句简介和使用实例
Mar 11 #PHP
You might like
PHP对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
php使用CutyCapt实现网页截图保存的方法
2016/10/03 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
Prototype Template对象 学习
2009/07/19 Javascript
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
javascript中全局对象的isNaN()方法使用介绍
2013/12/19 Javascript
给js文件传参数(详解)
2014/07/13 Javascript
Google Maps API地图应用示例分享
2014/10/23 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
JavaScript实现动态增删表格的方法
2017/03/09 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
浅谈ECMAScript 中的Array类型
2019/06/10 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
python编程线性回归代码示例
2017/12/07 Python
Python实现随机漫步功能
2018/07/09 Python
django解决订单并发问题【推荐】
2019/07/31 Python
python运用sklearn实现KNN分类算法
2019/10/16 Python
Python实现快速排序的方法详解
2019/10/25 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
职员竞岗演讲稿
2014/05/14 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
一行代码python实现文件共享服务器
2021/04/22 Python
MySQL 视图(View)原理解析
2021/05/19 MySQL
Vue全局事件总线你了解吗
2022/02/24 Vue.js
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang