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提取中文首字母
Apr 09 PHP
php MsSql server时遇到的中文编码问题
Jun 11 PHP
PHP调用wsdl文件类型的接口代码分享
Nov 19 PHP
thinkphp中memcache的用法实例
Nov 29 PHP
PHP中的替代语法介绍
Jan 09 PHP
初识ThinkPHP控制器
Apr 07 PHP
Apache PHP MySql安装配置图文教程
Aug 27 PHP
thinkPHP多语言切换设置方法详解
Nov 11 PHP
PHP使用imagick扩展实现合并图像的方法
Apr 25 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
Apr 16 PHP
PHP判断函数是否被定义的方法
Jun 21 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
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
ThinkPHP模板中数组循环实例
2014/10/30 PHP
php在linux下检测mysql同步状态的方法
2015/01/15 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
js parsefloat parseint 转换函数
2010/01/21 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
2020/08/05 Javascript
python内存管理分析
2015/04/08 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
Python的垃圾回收机制详解
2019/08/28 Python
Tensorflow Summary用法学习笔记
2020/01/10 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
python 制作磁力搜索工具
2021/03/04 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
《夏夜多美》教学反思
2014/02/17 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书