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
PHP CURL模拟GET及POST函数代码
Apr 25 PHP
PHP 一个随机字符串生成代码
May 26 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
php实现rc4加密算法代码
Apr 25 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
Nov 12 PHP
php使用指定字符列表生成随机字符串的方法
Apr 18 PHP
php通过前序遍历树实现无需递归的无限极分类
Jul 10 PHP
详解PHP中的Traits
Jul 29 PHP
phpmailer绑定邮箱的实现方法
Dec 01 PHP
php中上传文件的的解决方案
Sep 25 PHP
laravel5.6中的外键约束示例
Oct 23 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下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
php中取得文件的后缀名?
2012/02/20 PHP
JSON在PHP中的应用介绍
2012/09/08 PHP
php 删除cookie方法详解
2014/12/01 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
2016/05/13 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
python中base64加密解密方法实例分析
2015/05/16 Python
Django中间件实现拦截器的方法
2018/06/01 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
一家专门经营包包的英国网站:MyBag
2019/09/08 全球购物
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
岗位职责范本
2013/11/23 职场文书
三好学生自我鉴定
2013/12/17 职场文书
投标单位介绍信
2014/01/09 职场文书
导购员的岗位职责
2014/02/08 职场文书
法律专业自荐信
2014/06/03 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫