JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
* db.php (db_update): don't assume has numeric keys.
[wfpl.git] / db.php
diff --git a/db.php b/db.php
index 4a58db8..51452b8 100644 (file)
--- a/db.php
+++ b/db.php
@@ -166,6 +166,22 @@ function db_get_rows($table, $columns, $where = '') {
        return $rows;
 }
 
+# like db_get_rows, but return array of hashes.
+function db_get_assocs($table, $columns, $where = '') {
+       $args = func_get_args();
+       $args = array_slice($args, 3);
+       $result = db_send_get($table, $columns, $where, $args);
+
+       $rows = array();
+       while($row = mysql_fetch_assoc($result)) {
+               $rows[] = $row;
+       }
+
+       mysql_free_result($result);
+
+       return $rows;
+}
+
 function db_get_column($table, $columns, $where = '') {
        $args = func_get_args();
        $args = array_slice($args, 3);
@@ -193,6 +209,19 @@ function db_get_row($table, $columns, $where = '') {
        return $row;
 }
 
+# like db_get_row, but return a hash.
+function db_get_assoc($table, $columns, $where = '') {
+       $args = func_get_args();
+       $args = array_slice($args, 3);
+       $result = db_send_get($table, $columns, $where, $args);
+
+       $row = mysql_fetch_assoc($result);
+
+       mysql_free_result($result);
+
+       return $row;
+}
+
 function db_get_value($table, $columns, $where = '') {
        $args = func_get_args();
        $args = array_slice($args, 3);
@@ -257,10 +286,10 @@ function db_insert_ish($command, $table, $columns, $values) {
        db_send_query($sql);
 }
 
-# to be consistant with the syntax of the other db functions, $values can be an
+# to be consistent with the syntax of the other db functions, $values can be an
 # array, a single value, or multiple parameters.
 #
-# as usual the where clause stuff is optional, but it will ofcourse update the
+# as usual the where clause stuff is optional, but it will of course update the
 # whole table if you leave it off.
 #
 # examples:
@@ -287,6 +316,7 @@ function db_update($table, $columns, $values) {
        $num_fields = count($columns);
 
        if(is_array($values)) {
+               $values = array_values($values);
                $args = array_slice($args, 1);
        } else {
                $values = array_slice($args, 0, $num_fields);
@@ -310,7 +340,7 @@ function db_update($table, $columns, $values) {
                $args = array_slice($args, 1);
 
                $sql .= ' ';
-               # any left for where claus arguments?
+               # any left for printf arguments?
                if($args) {
                        $sql .= _db_printf($where, $args);
                } else {