/** * Échapper une valeur selon son type ou au mieux * comme le fait `_q()` mais pour MySQL avec ses spécificités * * @param string|array|number $v * Texte, nombre ou tableau à échapper * @param string $type * Description du type attendu * (par exemple description SQL de la colonne recevant la donnée) * @return string|number * Donnée prête à être utilisée par le gestionnaire SQL */ function spip_mysql_quote($v, $type = '') { if ($type) { if (!is_array($v)) { return spip_mysql_cite($v, $type); } // si c'est un tableau, le parcourir en propageant le type foreach ($v as $k => $r) { $v[$k] = spip_mysql_quote($r, $type); } return $v; } else { return _q($v); } }
function spip_mysql_updateq($table, $champs, $where='', $desc=array(), $serveur='',$requeter=true) { if (!$champs) return; if (!$desc) $desc = description_table($table); if (!$desc) $champs = array(); else $fields = $desc['field']; $set = array(); foreach ($champs as $champ => $val) { $set[] = $champ . '=' . spip_mysql_cite($val, $fields[$champ]); } return spip_mysql_query( calculer_mysql_expression('UPDATE', $table, ',') . calculer_mysql_expression('SET', $set, ',') . calculer_mysql_expression('WHERE', $where), $serveur, $requeter); }