ホームページ >バックエンド開発 >PHPチュートリアル >PHP はリフレクションを使用してオブジェクトを挿入する例 Sharing_PHP チュートリアル

PHP はリフレクションを使用してオブジェクトを挿入する例 Sharing_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:36:12907ブラウズ

复制代価代価如下:

/**
* InsertModel()、リフレクションを使用、若干効率が低い
* @param class $model object
* @param bool $is_returnLastInsertId 追加された ID を返すかどうか
* @return int デフォルトは成功または失敗を返し、$is_returnLastInsertId は true、 ID の追加に戻ってください
*/
public function insertModel($model,$is_returnLastInsertId=FALSE) {
try {
require_once dir名前(ディレクトリ名(__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 = "{$tName} ({$fields}) の値 ({$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.comtru​​ehttp://www.bkjia.com/PHPjc/740206.html技術記事复制代码代码如下: /** * 插入insertModel(),利用反射,效率稍差 * @param class $model 对象 * @param bool $is_returnLastInsertId 否か追加ID * @return...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。