/** * 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; }