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之XML转数组函数的详解
Jun 07 PHP
深入PHP FTP类的详解
Jun 13 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
ThinkPHP表单自动验证实例
Oct 13 PHP
php输出xml必须header的解决方法
Oct 17 PHP
php将数组转换成csv格式文件输出的方法
Mar 14 PHP
Symfony2函数用法实例分析
Mar 18 PHP
php 微信公众平台开发模式实现多客服的实例代码
Nov 07 PHP
PHP实现的简单操作SQLite数据库类与用法示例
Jun 19 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Jan 22 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/08/17 PHP
PHP实现无限极分类图文教程
2014/11/25 PHP
Ajax+Json 级联菜单实现代码
2009/10/27 Javascript
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
[29:16]完美世界DOTA2联赛决赛日 Inki vs LBZS 第三场 11.08
2020/11/10 DOTA
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
python如何获取服务器硬件信息
2017/05/11 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
简单了解python变量的作用域
2019/07/30 Python
python生成大写32位uuid代码
2020/03/03 Python
学点简单的Django之第一个Django程序的实现
2021/02/24 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
护士实习鉴定范文
2013/12/22 职场文书
安阳殷墟导游词
2015/02/10 职场文书
关于迟到的检讨书
2015/05/06 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书