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 08 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
Jan 13 PHP
如何用PHP实现插入排序?
Apr 10 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
Aug 01 PHP
php算法实例分享
Jul 14 PHP
PHP处理Ajax请求与Ajax跨域问题
Feb 13 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
PHP设计模式之工厂模式定义与用法详解
Apr 03 PHP
用PHP的反射实现委托模式的讲解
Mar 22 PHP
Laravel实现搜索的时候分页并携带参数
Oct 15 PHP
PHP7 新增功能
Mar 09 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/06/25 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
用JS剩余字数计算的代码
2008/07/03 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
js制作网站首页图片轮播特效代码
2016/08/30 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
用Node编写RESTful API接口的示例代码
2018/07/04 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
使用Python对MySQL数据操作
2017/04/06 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
如何在python中实现线性回归
2020/08/10 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
医科大学生的自我评价
2013/12/04 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
学习雷锋倡议书
2014/04/15 职场文书
学习“七一”讲话精神体会
2014/07/08 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
Redis实现一个账号只能登录一个设备
2022/04/19 Redis