2010-08-07 5 views
0

Je suis confronté à ce problème, je veux faire une base de données deleteAll où un champ est égal à quelque chose et un autre champ ne doit pas être égale à quelque chose .. son pour supprimer des lignes en double si je veux supprimer tout sauf une ligne .. la façon dont j'ai essayé ci-dessous ne fonctionne pas, je vous serais reconnaissant de tout conseil:Est-ce que la ligne de base de données DeleteAll où 1 champ est égal à quelque chose et l'autre champ n'est pas égal à quelque chose

$conditions = array (
    "Prox.proxy" => $currentproxytocheck, 
    "AND" => array (
    "NOT" => array (
    "Prox.proxyid" => $currentproxyid 
    ) 
) 
); 

$this->Prox->deleteAll(array('conditions' => $conditions)); 

EDIT:

L'impression du tableau $ conditions est la suivante:

Array 
(
    [Prox.proxy] => 62.58.179.2:80 
    [AND] => Array 
     (
      [NOT] => Array 
       (
        [Prox.proxyid] => 36829 
       ) 

     ) 

) 

Erreur de CakePHP:

Notice (8): Array to string conversion [CORE/cake/libs/model/datasources/dbo_source.php, line 2193] 
Warning (512): SQL Error: 1054: Unknown column 'conditions' in 'where clause' [CORE/cake/libs/model/datasources/dbo_source.php, line 673] 

Répondre

6

Le syntax for deleteAll est différent de find

deleteAll(mixed $conditions, $cascade = true, $callbacks = false) 

Utilisez

$this->Prox->deleteAll($conditions); 

Et votre tableau pourrait être construit comme ceci:

$conditions = array (
    "Prox.proxy" => $currentproxytocheck, 
    "Prox.proxyid <>" => $currentproxyid 
); 

Ce qui est la même chose, mais plus lisible.

+0

Il y a certainement des enregistrements comme ça, j'ai vérifié et testé directement sans utiliser de variables (en utilisant des valeurs spécifiques que je connais). J'essaie de le faire de façon cakephp, sans utiliser les appels mysql directs , donc c'est le problème plus que tout car il y a peu de documentation sur la méthode deleteall – Rick

+0

@Rick Alors votre tableau est-il construit correctement? – quantumSoup

+0

pour autant que je peux dire .. J'ai édité mon OP avec l'impression de la matrice – Rick

Questions connexes