php使用反射插入對象樣本分享_PHP教程

來源:互聯網
上載者:User
複製代碼 代碼如下:
/**
* 插入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();
}
}

http://www.bkjia.com/PHPjc/740206.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/740206.htmlTechArticle複製代碼 代碼如下: /** * 插入insertModel(),利用反射,效率稍差 * @param class $model 對象 * @param bool $is_returnLastInsertId 是否返回添加ID * @return...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.