MyBB.de Forum

Normale Version: update statement
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

folgende Statement bereiten mir Kopfzerbrechen

PHP-Code:
        if($mybb->input['old_cid']!=$mybb->input['cid']){
        
$db->update_query(TABLE_PREFIX 'linkscategories', array('links'=>links-1), "cid='$act_cid'");
        
$db->update_query(TABLE_PREFIX 'linkscategories', array('links'=>links+1), "cid='$cid'"); 

sollen jeweis Feld links um einen erhöhen bzw reduzieren.

Verwendet myBB Active Record Patterns?
O.K.

ein Blick in die DB-Engine offenbart des Rätsels Lösung:

PHP-Code:
    function update_query($table$array$where=""$limit="")
    {
        if(!
is_array($array))
        {
            return 
false;
        }
        
$comma "";
        
$query "";
        foreach(
$array as $field => $value)
        {
            
$query .= $comma.$field."='".$value."'";
            
$comma ", ";
        }
        if(!empty(
$where))
        {
            
$query .= " WHERE $where";
        }
        if(!empty(
$limit))
        {
            
$query .= " LIMIT $limit";
        }
        return 
$this->query("UPDATE $table SET $query");
    } 
die Values werden gequotet:question:
muss dann wohl so aussehen:
PHP-Code:
$db->query("UPDATE `".TABLE_PREFIX."linkscategories` SET links=links+1 WHERE cid='$cid'"); 

Aber ich lasse mich gerne eines besseren belehren
Genau das wird ausgeführt. Bei größeren Arrays macht die Funktion aber mehr Sinn.
O.K.

und mit Active Record Patterns hat das natürlich auch nichts zu tun