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的ASP防火墙
Oct 09 PHP
使用Limit参数优化MySQL查询的方法
Nov 12 PHP
用php实现百度网盘图片直链的代码分享
Nov 01 PHP
九个你必须知道而且又很好用的php函数和特点
Aug 08 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 PHP
PHP 读取和编写 XML
Nov 19 PHP
PHP文件读取功能的应用实例
May 08 PHP
PHP统计当前在线用户数实例讲解
Oct 21 PHP
PHP工程师VIM配置分享
Dec 15 PHP
PHP中phar包的使用教程
Jun 14 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中获取主机名、协议及IP地址的方法
2014/11/18 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
如何动态加载外部Javascript文件
2015/12/02 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
微信jssdk逻辑在vue中的运用详解
2018/11/14 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
2020/03/10 Javascript
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
利用Celery实现Django博客PV统计功能详解
2017/05/08 Python
Python实现购物车功能的方法分析
2017/11/10 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
详解python中的 is 操作符
2017/12/26 Python
linux环境下Django的安装配置详解
2019/07/22 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
机电一体化专业求职信
2014/07/22 职场文书
三峡人家导游词
2015/01/31 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
教师节主题班会方案
2015/08/17 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
JDBC连接的六步实例代码(与mysql连接)
2021/05/12 MySQL
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python