[spip-dev] [2.1.26] sql_delete et condition where qui marche pas

Bonjour,

Dans mon code, j'avais :
sql_insertq("spip_zones_auteurs",
array('id_zone' => $id_zone, 'id_auteur' => $id_auteur['id_auteur']));
Qui marchait

Et
sql_delete("spip_zones_auteurs",
array('id_zone' => $id_zone, 'id_auteur' => $id_auteur['id_auteur']));
qui au lieu d'effacer l'enregistrement demandé vidait la table.

En remplaçant par :
sql_delete("spip_zones_auteurs", array("id_zone=$id_zone","id_auteur=".$id_auteur['id_auteur']));

Ça marche.

Est-ce que c'est moi qui n'ai pas su me servir correctement de l'API, ou est-ce l'API qui comporte un bug ?

RealET a écrit le 27/11/2014 16:38 :

Est-ce que c'est moi qui n'ai pas su me servir correctement de l'API, ou
est-ce l'API qui comporte un bug ?

En fait, le bug était d'avoir mal lu sql_insertq - Programmer avec SPIP 4
qui indique :
2) $couples est un tableau associatif nom / valeur,

alors que sql_delete - Programmer avec SPIP 4 indique
2) $where,

C'est juste dommage que le $where ne supporte pas la syntaxe du $couples en considérant que c'est des "="

Ce serait une incohérence puisque AUCUNE fonction sql_xxx ne prend un $where sous la forme que tu évoques.

RealET a écrit: