SmtC: Show me the Code
Ole Peter Smith
Instituto de Matemática e Estatística
Universidade Federal de Goiás
http://www.olesmith.com.br

SQL
Whom takes fun only as fun.
And serious only seriously.
Misunderstood both.
Piet Hein
< SELECT | UPDATE | DELETE >

UPDATE

UPDATE
table_name
SET
column1="value1",..., columnN="valueN"
WHERE
ID='5' AND Name LIKE 'Ole%';
PHP Listing: Update.php.
    //*
    //* Updates $item (assoc array) to DB table $table, if needed.
    //* 

    function Sql_Update_Item($item,$where,$datas=array(),$table="",$force=False,$pretend=False)
    {
        $query=$this->Sql_Update_Item_Query($item,$where,$datas,$table,$force);

        array_push($this->ApplicationObj()->Sql_Update_Queries,$query);

        if ($pretend) { return $query; }

        if (!empty($query))
        {
            $res=$this->DB_Query($query);
            return $query;
        }
        else
        {
            return -1;
        }
    }

    //*
    //* Updates $item (assoc array) to DB table $table, if needed.
    //* 

    function Sql_Update_Item_Query($item,$where,$datas=array(),$table="",$force=False)
    {
        if (is_array($where)) { $where=$this->Hash2SqlWhere($where); }
        if (empty($datas)) { $datas=array_keys($item); }

        $olditem=$this->Sql_Select_Hash($where,$datas,FALSE,$table);

        $query="";
        
        $nchanges=0;
        foreach ($datas as $key)
        {
            $value=$item[ $key ];
            $value=preg_replace('/\'/',"''",$value);
            
            if
                (
                    $force
                    ||
                    (
                        isset($olditem[ $key ])
                        &&
                        $value!=$olditem[ $key ]
                    )
                )
            {
                $query.=
                    $this->Sql_Table_Column_Name_Qualify($key).
                    "=".
                    $this->Sql_Table_Column_Value_Qualify($value).
                    ", ";
                $nchanges++;
            }
        }

        if ($nchanges>0)
        {
            $query=preg_replace('/,\s$/',"",$query);
            $query="UPDATE ".
                $this->Sql_Table_Name_Qualify($table).
                " SET ".
                $query.
                " WHERE ".
                $where;
        }

        return $query;
    }
< SELECT | UPDATE | DELETE >
Messages:
0 secs.