diff options
author | Remi Collet <fedora@famillecollet.com> | 2010-08-07 18:32:09 +0200 |
---|---|---|
committer | Remi Collet <fedora@famillecollet.com> | 2010-08-07 18:32:09 +0200 |
commit | fe3d37364bbc072aedac951d4b2acc724ba7393a (patch) | |
tree | dc8dcc9ec2f864962dba5c59f46289659861495e /class/CommonTable.php | |
parent | 6d2954c5e9da8cd36c231114df5184d4a3101ddd (diff) |
add Class TableRpmRepo and use it everywhere
Diffstat (limited to 'class/CommonTable.php')
-rw-r--r-- | class/CommonTable.php | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/class/CommonTable.php b/class/CommonTable.php index 51c0cd6..a7d029d 100644 --- a/class/CommonTable.php +++ b/class/CommonTable.php @@ -147,9 +147,40 @@ abstract class CommonTable } /** + * Update a row in the table + * + * @param integer $id of the record + * @param hashtable $fields of key => value + * + * @return integer : number of row deleted + */ + public function update($id, array $fields) + { + $sql = "UPDATE `".$this->table."` "; + + $link = 'SET'; + foreach ($fields as $key => $value) { + $sql .= "$link `$key`="; + if (is_null($value)) { + $sql .= 'NULL'; + } else if (is_numeric($value)) { + $sql .= $value; + } else { + $sql .= "'".addslashes($value)."'"; + } + $link = ','; + } + $sql .= " WHERE `id`=".intval($id); + + $nb = $this->exec($sql); + + return $nb; + } + + /** * Create the table - * - * @return void + * + * @return void */ abstract protected function createTable(); @@ -219,14 +250,15 @@ abstract class CommonTable * Retrieve a big array with all date from the table * * @param array|string $crit for the request + * @param string $key name of the key for the return array * * @return array, index is rowid, value is a hastable */ - public function getArray($crit='') + public function getArray($crit='', $key='id') { $tab = array(); foreach ($this->request($crit) as $id => $data) { - $tab[$id] = $data; + $tab[$data[$key]] = $data; } return $tab; } |