ホームページ >バックエンド開発 >PHPチュートリアル >php_PHP チュートリアルでのリフレクションを使用したオブジェクトの挿入の例
この記事では主にリフレクションを使用して PHP にオブジェクトを挿入する例を紹介しますので、必要な方は参考にしてください。 コードは以下のように表示されます。 /** * InsertModel()、リフレクションを使用、若干効率が低い * @param クラス $model オブジェクト * @param bool $is_returnLastInsertId 追加されたIDを返すかどうか * @return int デフォルトは成功または失敗を返します。$is_returnLastInsertId が true の場合、追加された ID を返します。 */ パブリック関数 insertModel($model,$is_returnLastInsertId=FALSE) { 試す { 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 = "{$tName} ({$fields}) の値 ({$vals}) に挿入"; if($is_returnLastInsertId){ $this->conn->exec($this->sql); $lastId = (int)$this->conn->lastInsertId(); $lastId を返します。 } それ以外 { $row = $this->conn->exec($this->sql); return $row; } } catch (Exception $exc) { echo $exc->getMessage(); } } }