php使用反射插入對(duì)象示例分享
更新時(shí)間:2014年03月11日 14:20:20 作者:
這篇文章主要介紹了php使用反射插入對(duì)象示例,需要的朋友可以參考下
復(fù)制代碼 代碼如下:
/**
* 插入insertModel(),利用反射,效率稍差
* @param class $model 對(duì)象
* @param bool $is_returnLastInsertId 是否返回添加ID
* @return int 默認(rèn)返回成功與否,$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();
}
}
相關(guān)文章
PHP笛卡爾積實(shí)現(xiàn)原理及代碼實(shí)例
這篇文章主要介紹了PHP笛卡爾積實(shí)現(xiàn)原理及代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12Laravel框架實(shí)現(xiàn)的批量刪除功能示例
這篇文章主要介紹了Laravel框架實(shí)現(xiàn)的批量刪除功能,結(jié)合實(shí)例形式分析了Laravel框架批量刪除功能相關(guān)的前端界面布局及后臺(tái)控制器實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-01-01thinkPHP框架實(shí)現(xiàn)的無(wú)限回復(fù)評(píng)論功能示例
這篇文章主要介紹了thinkPHP框架實(shí)現(xiàn)的無(wú)限回復(fù)評(píng)論功能,結(jié)合實(shí)例形式簡(jiǎn)單分析了thinkPHP實(shí)現(xiàn)無(wú)限回復(fù)的相關(guān)控制器、視圖操作技巧,需要的朋友可以參考下2018-06-06一個(gè)自定義位數(shù)的php多用戶計(jì)數(shù)器代碼
一個(gè)自定義位數(shù)的php多用戶計(jì)數(shù)器代碼...2007-03-03

詳解Yii2.0 rules驗(yàn)證規(guī)則集合
本篇文章主要介紹了詳解Yii2.0 rules驗(yàn)證規(guī)則集合 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
2017-03-03