db_insert_ish('INSERT', $table, $columns, $values);
}
+
+# like db_insert() above, but instead of passing columns and data separately,
+# you can pass one array with the column names as keys and the data as values
+function db_insert_assoc($table, $data) {
+ $args = func_get_args();
+ $args = array_slice($args, 2);
+ $columns = array();
+ $values = array();
+ foreach($data as $key => $value) {
+ $columns[] = $key;
+ $values[] = $value;
+ }
+ array_unshift($args, $table, join(',', $columns), $values);
+ call_user_func_array('db_insert', $args);
+}
+
# same as above, except uses the "replace" command instead of "insert"
function db_replace($table, $columns, $values) {
if(!is_array($values)) {
db_send_query($sql);
}
+# like db_update() above, but instead of passing columns and data separately,
+# you can pass one array with the column names as keys and the data as values
+function db_update_assoc($table, $data) {
+ $args = func_get_args();
+ $args = array_slice($args, 2);
+ $columns = array();
+ $values = array();
+ foreach($data as $key => $value) {
+ $columns[] = $key;
+ $values[] = $value;
+ }
+ array_unshift($args, $values);
+ array_unshift($args, join(',', $columns));
+ array_unshift($args, $table);
+ call_user_func_array('db_update', $args);
+}
+
# pass args for printf-style where clause as usual
function db_delete($table, $where = '') {
$sql = "DELETE FROM $table";
# When editing a particular row, give the user a pulldown, with 0 -> first, 1 -> second, etc, and pass this integer to db_reposition (3rd parameter). The value "ignored" can be passed, and the row will be given a sort value of 0 and ignored for all sorting.
#
# $pretty is used in error messages to refer to the row, it defaults to whatever you pass for $table.
+#
+# return value is the "ord" value you should set/insert into your database
function db_reposition($table, $row_id, $new_pos, $field = 'ord', $pretty = 'same as $table', $renumbered_already = false) {
if($pretty == 'same as $table') {