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连接SQLServer2005 的问题解决方法
Jul 19 PHP
linux系统上支持php的 iconv()函数的方法
Oct 01 PHP
php中取得文件的后缀名?
Feb 20 PHP
php中判断文件存在是用file_exists还是is_file的整理
Sep 12 PHP
php获取本地图片文件并生成xml文件输出具体思路
Apr 27 PHP
php 判断服务器操作系统的类型
Feb 17 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
May 20 PHP
PHP 闭包详解及实例代码
Sep 28 PHP
php array_udiff_assoc 计算两个数组的差集实例
Nov 12 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
Sep 03 PHP
Ajax+PHP实现的模拟进度条功能示例
Feb 11 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值mysql操作类
2016/06/29 PHP
jQuery 性能优化指南(3)
2009/05/21 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
实现web打印的各种方法介绍及实现代码
2013/01/09 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
我的Node.js学习之路(一)
2014/07/06 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
jQuery模拟淘宝购物车功能
2017/02/27 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
M2实现Nodejs项目自动部署的方法步骤
2019/05/05 NodeJs
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
Vue实现开关按钮拖拽效果
2020/09/22 Javascript
python获取外网IP并发邮件的实现方法
2017/10/01 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
python调用接口的4种方式代码实例
2019/11/19 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
毕业设计计划书
2014/01/09 职场文书
公休请假条
2014/04/11 职场文书
电视节目策划方案
2014/05/16 职场文书
给朋友的道歉短信
2015/05/12 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
深入解析Apache Hudi内核文件标记机制
2022/03/31 Servers
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫
前端使用svg图片改色实现示例
2022/07/23 HTML / CSS