Home >php教程 >php手册 >php使用反射插入对象示例

php使用反射插入对象示例

WBOY
WBOYOriginal
2016-06-13 09:40:59932browse

 这篇文章主要介绍了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();         }     }  
Statement:
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