Home > php教程 > PHP源码 > 在php中使用反射插入对象

在php中使用反射插入对象

PHP中文网
Release: 2016-05-25 16:59:48
Original
1232 people have browsed it

在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__)).'ModelsBaseModel.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();
}
}
Copy after login

                       


Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template