Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] doUpdate i Criteria::IN
Forum PHP.pl > Forum > PHP > Frameworki
XvZOK
Chciałbym korzystając z Propela/Criteria wykonać:

  1. UPDATE tabela SET kolumna=1 WHERE pk IN (1,2,34,...)


próbowałem zarówno:

  1. <?php
  2. $c1=new Criteria();
  3. $c1->add(TabelaPeer::PK,$ids,Criteria::IN);
  4. $c2=new Criteria();
  5. $c2->add(TabelaPeer::KOLUMNA,1);
  6. BasePeer::doUpdate($c1,$c2,Propel::getConnection());
  7. ?>


jak i z uzyciem TabelaPeer::doUpdate
Niestety wywala się twierdząc że nie może przekonwertować obiektu Tabela na integer.

Googlowałem z godzine ale bezskutecznie.

Jeśli się nie da przez Propel/Criteria to może jakiś inny sposób na masowy UPDATE z kompaktybilnością na wiele baz.
AxZx
w Symfony 1.2 można zrobić to tak:
  1. <?php
  2. $con = Propel::getConnection();
  3. $stmt = $con->prepare('UPDATE tabela SET kolumna=1 WHERE pk IN (:id) ');
  4.            $stmt->bindValue(':id', '1,2,3,4,5', PDO::PARAM_STR);
  5.            $stmt->execute();
  6. ?>
arecki
Cytat(XvZOK @ 10.03.2009, 19:10:10 ) *
Chciałbym korzystając z Propela/Criteria wykonać:

  1. UPDATE tabela SET kolumna=1 WHERE pk IN (1,2,34,...)


próbowałem zarówno:

  1. <?php
  2. $c1=new Criteria();
  3. $c1->add(TabelaPeer::PK,$ids,Criteria::IN);
  4. $c2=new Criteria();
  5. $c2->add(TabelaPeer::KOLUMNA,1);
  6. BasePeer::doUpdate($c1,$c2,Propel::getConnection());
  7. ?>


No to nie jesteś sam. Kiedyś też szukałem i sam patrząc po źródłach symfony wykombinowałem. Sprawdź czy zadziała Ci coś takiego:
  1. <?php
  2. $c1=new Criteria();
  3. $c1->add(TabelaPeer::PK,$ids,Criteria::IN);
  4. $c1->add(TabelaPeer::KOLUMNA,1);
  5. TabelaPeer::doUpdate($c1);
  6. ?>
Lonas
  1. <?php
  2. $con = Propel::getConnection();
  3.    
  4.    $c1 = new Criteria();
  5.    $c1->add(PhotoPeer::PHOTO_ID, $photo_id);
  6.    
  7.    // update set
  8.    $c2 = new Criteria();
  9.    $c2->add(PhotoPeer::COUNTER, COUNTER+1);
  10.    
  11.    BasePeer::doUpdate($c1, $c2, $con);
  12. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.