2012-01-31 14 views
5

Proszę zasugerować, jak napisać w joomla sposób do aktualizacji bazy danych, gdzie klauzula & iJak napisać warunek "WHERE" klauzula AND w joomla 1.7? Nie mam danych do zapisania aktualizacji

Piszę;

$query = JFactory::getDbo()->getQuery(true); 
    $db =& JFactory::getDBO(); 
    $query->update('table1'); 
    $query->set('id = ' . $db->quote($idname)); 
    $query->set ('day='. $db->quote($this->_day)); 
    $query->set('id2 = ' . $id2); 

    $query->where('id = '. (int)$idname) 
      AND('id2=' .(int)$id2); 

Nie mam nic bezpiecznego, a błąd jest podobny do tego; ......... .......... ........ [coś przed] ....

array(3) { 
    [0]=> 
    string(11) "id = '1'" 
    [1]=> 
    string(14) "id2='2'" 
    [2]=> 
    string(17) "date = 2012-04-02" [it seems i got all the value pass to be update] 
    } 
    ["glue:protected"]=> 
    string(4) " 
, " 
} 
["where:protected"]=> 
object(JDatabaseQueryElement)#251 (3) { 
    ["name:protected"]=> 
    string(5) "WHERE" 
    ["elements:protected"]=> 
    array(1) { 
    [0]=> 
    string(14) "id = 2" [where clause is ok ...BUT with AND...] 
    } 
    ["glue:protected"]=> 
    string(5) " AND " 
} 
["group:protected"]=> [something is wrong here...?] 
NULL 
["having:protected"]=> 
NULL 
["columns:protected"]=> 
NULL 
["values:protected"]=> 
NULL 
["order:protected"]=> 
NULL 
["autoIncrementField:protected"]=> 
NULL 

}

Odpowiedz

7

nie jestem pewien, o zapytaniu aktualizacji Joomla, ale myślę, że jest coś takiego: -

$query->where('id = '. (int)$idname); 
$query->AND('id2=' .(int)$id2); 

lub: -

$query->where('id = '. (int)$idname . 'AND id2 = '.(int)$id2); 
+0

Próbuję "$ query-> where (" id = ". (int) $ idname. 'AND id2 ='. (Int) $ id2); "i to działa. dzięki! FYI, nie wiem, dlaczego ten pierwszy daje mi błąd, że tęsknię za sqli param " –

6

Ty powinien używać

$query->where('id = '. (int)$idname, 'AND') 
     ->where('id2=' .(int)$id2);