php使用反射插入对象示例分享
2015-01-24信息快讯网
这篇文章主要介绍了php使用反射插入对象示例,需要的朋友可以参考下
/**
* 插入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();
}
}
Linux下PHP连接Oracle数据库
Win7 64位系统下PHP连接Oracle数据库
对PHP新手的一些建议(PHP学习经验总结)
PHP中使用localhost连接Mysql不成功的解决方法
PHP编译安装中遇到的两个错误和解决方法
PHP中使用json数据格式定义字面量对象的方法
php CI框架插入一条或多条sql记录示例
PHP大批量插入数据库的3种方法和速度对比
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
php上传图片存入数据库示例分享
php数组编码转换示例详解
使用Discuz关键词服务器实现PHP中文分词
PHP输出缓存ob系列函数详解
php初始化对象和析构函数的简单实例
PHP连接MySQL的2种方法小结以及防止乱码
php面向对象中的魔术方法中文说明
codeigniter框架批量插入数据
PHP面向对象之旅:深入理解static变量与方法
codeigniter使用技巧批量插入数据实例方法分享
PHP PDOStatement:bindParam插入数据错误问题分析
php中如何使对象可以像数组一样进行foreach循环
php多层数组与对象的转换实例代码
在PHP中使用反射技术的架构插件使用说明