Skip to content
Extraits de code Groupes Projets
Valider b4a8e80f rédigé par cerdic's avatar cerdic
Parcourir les fichiers

factoriser le calcul du where, et eviter de generer une requete destructrice...

factoriser le calcul du where, et eviter de generer une requete destructrice si il manque un argument
parent 35a5ba3a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -185,7 +185,22 @@ function lien_insert($objet_source,$primary,$table_lien,$id,$objets) { ...@@ -185,7 +185,22 @@ function lien_insert($objet_source,$primary,$table_lien,$id,$objets) {
return $ins; return $ins;
} }
function lien_where($id,$objet,$id_objet){
if (!strlen($id)
OR !strlen($objet)
OR (!is_array($id_objet) AND !strlen($id_objet)))
return "0=1"; // securite
$where = array();
if ($id!=='*')
$where[] = "$primary=".intval($id);
if ($objet!=='*')
$where[] = "objet=".sql_quote($objet);
if ($id_objet!=='*')
$where[] = (is_array($id_objet)?sql_in('id_objet',array_map('intval',$id_objet)):"id_objet=".intval($id_objet));
return $where;
}
/** /**
* Sous fonction suppression * Sous fonction suppression
...@@ -210,13 +225,7 @@ function lien_delete($objet_source,$primary,$table_lien,$id,$objets){ ...@@ -210,13 +225,7 @@ function lien_delete($objet_source,$primary,$table_lien,$id,$objets){
foreach($objets as $objet => $id_objets){ foreach($objets as $objet => $id_objets){
if (!is_array($id_objets)) $id_objets = array($id_objets); if (!is_array($id_objets)) $id_objets = array($id_objets);
foreach($id_objets as $id_objet) { foreach($id_objets as $id_objet) {
$where = array(); $where = lien_where($id,$objet,$id_objet);
if ($id AND $id!=='*')
$where[] = "$primary=".intval($id);
if ($objet AND $objet!=='*')
$where[] = "objet=".sql_quote($objet);
if ($id_objet AND $id_objet!=='*')
$where[] = "id_objet=".intval($id_objet);
sql_delete($table_lien, $where); sql_delete($table_lien, $where);
$retire[] = array('source'=>array($objet_source=>$id),'lien'=>array($objet=>$id_objet),'type'=>$objet,'id'=>$id_objet); $retire[] = array('source'=>array($objet_source=>$id),'lien'=>array($objet=>$id_objet),'type'=>$objet,'id'=>$id_objet);
} }
...@@ -251,13 +260,7 @@ function lien_set($objet_source,$primary,$table_lien,$id,$objets,$qualif){ ...@@ -251,13 +260,7 @@ function lien_set($objet_source,$primary,$table_lien,$id,$objets,$qualif){
foreach($objets as $objet => $id_objets){ foreach($objets as $objet => $id_objets){
if (!is_array($id_objets)) $id_objets = array($id_objets); if (!is_array($id_objets)) $id_objets = array($id_objets);
foreach($id_objets as $id_objet) { foreach($id_objets as $id_objet) {
$where = array(); $where = lien_where($id,$objet,$id_objet);
if ($id AND $id!=='*')
$where[] = "$primary=".intval($id);
if ($objet AND $objet!=='*')
$where[] = "objet=".sql_quote($objet);
if ($id_objet AND $id_objet!=='*')
$where[] = "id_objet=".intval($id_objet);
if ($c) if ($c)
sql_updateq($table_lien,$qualif,$where); sql_updateq($table_lien,$qualif,$where);
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter