コード例 #1
0
ファイル: DAO.php プロジェクト: nicolasBREYNAERT/helpdesk
 /**
  * Met à jour $instance dans la base de données.
  * Attention de ne pas modifier la clé primaire
  * @param Classe $instance instance à modifier
  * @param $updateMany Ajoute ou met à jour les membres ManyToMany
  */
 public static function update($instance, $updateMany = false)
 {
     $tableName = OrmUtils::getTableName(get_class($instance));
     $ColumnskeyAndValues = Reflexion::getPropertiesAndValues($instance);
     $ColumnskeyAndValues = array_merge($ColumnskeyAndValues, OrmUtils::getManyToOneMembersAndValues($instance));
     $keyFieldsAndValues = OrmUtils::getKeyFieldsAndValues($instance);
     $sql = "UPDATE " . $tableName . " SET " . SqlUtils::getUpdateFieldsKeyAndValues($ColumnskeyAndValues) . " WHERE " . SqlUtils::getWhere($keyFieldsAndValues);
     \Logger::log("update", $sql);
     \Logger::log("Key and values", json_encode($ColumnskeyAndValues));
     $statement = DAO::$db->prepareStatement($sql);
     foreach ($ColumnskeyAndValues as $key => $value) {
         DAO::$db->bindValueFromStatement($statement, $key, $value);
     }
     $result = $statement->execute();
     if ($result && $updateMany) {
         DAO::insertOrUpdateAllManyToMany($instance);
     }
     return $result;
 }