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 相关文章推荐
PHP中常用数组处理方法实例分析
Aug 30 PHP
PHP扩展编写点滴 技巧收集
Mar 09 PHP
PHP重定向的3种方式
Mar 07 PHP
PHP自动识别字符集并完成转码详解
Aug 02 PHP
PHP 输出URL的快捷方式示例代码
Sep 22 PHP
php中\r \r\n \t的区别示例介绍
Feb 08 PHP
php中file_get_contents与curl性能比较分析
Nov 08 PHP
php中header跳转使用include包含解决参数丢失问题
May 08 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 PHP
php7安装mongoDB扩展的方法分析
Aug 02 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 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
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
php文件缓存类汇总
2014/11/21 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
jquery 插件学习(五)
2012/08/06 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
Python实现的HMacMD5加密算法示例
2018/04/03 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
Python运维开发之psutil库的使用详解
2018/10/18 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
python创造虚拟环境方法总结
2019/03/04 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
python如何实现视频转代码视频
2019/06/17 Python
python增加图像对比度的方法
2019/07/12 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
python代码实现图书管理系统
2020/11/30 Python
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
程序集与命名空间有什么不同
2014/07/25 面试题
师范应届生教师求职信
2013/11/05 职场文书
创业计划书的内容步骤和要领
2014/01/04 职场文书
大四毕业生自荐书
2014/07/05 职场文书
写景作文评语集锦
2014/12/25 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
会计出纳岗位职责
2015/03/31 职场文书
工资证明格式模板
2015/06/12 职场文书
2016年中秋节慰问信
2015/12/01 职场文书