#!/usr/local/bin/php -q '; // Loop through columns if (is_array($cols) && !empty($cols)) { foreach ($cols as $col) { // Human readable. $field = $col[0]; $type = preg_replace('/^(\w+).*$/', '\\1', $col[1]); $is_primary_key = ('PRI' == $col[3]); $sort_columns .= "\$so->setColumn('$field', '$field ASC', '$field DESC');\n"; if ($is_primary_key) { // This is the primary key. Deal with separately. $primary_key = $field; } else if ('set' == $type) { // Set types usually need to be converted to comma-delimited lists. $c[$field] = "'\" . dbArrayToList(\$frm['$field']) . \"'"; } else if ('featured' == $field || 'publish' == $field || preg_match("/enum\('true'\)/", $col[1])) { // Toggle types. $c[$field] = "'\" . isset(\$frm['$field']) . \"'"; } else if ('added_by_user_id' == $field || 'modified_by_user_id' == $field) { // Toggle types. $c[$field] = "'\" . addslashes(\$auth->getVal('user_id')) . \"'"; } else if ('added_datetime' == $field || 'modified_datetime' == $field) { // DB record insertion datetime. $c[$field] = "NOW()"; } else { // Default. Just insert data. $c[$field] = "'\" . addslashes(\$frm['$field']) . \"'"; } } } else { die(basename($_SERVER['argv'][0]) . " Warning: $db_tbl does not have any columns.\n"); } echo isset($op) ? '' : "\n\n\n"; // Insert SQL. if (!isset($op) || 'insert' == $op) { $insert_skip_columns = array('modified_datetime', 'modified_by_user_id'); $insert_c = array(); foreach ($c as $k=>$v) { if (in_array($k, $insert_skip_columns)) { continue; } $insert_c[$k] = $v; } $db_keys = join(",\n ", array_keys($insert_c)); $db_vals = join(",\n ", $insert_c); echo <<$v) { if (in_array($k, $update_skip_columns)) { continue; } $key_eq_val .= $comma . "\n $k = $v"; $comma = ','; } echo <<$ignore) { if (in_array($k, $delete_skip_columns)) { continue; } $where_clause .= " $delim $k = '\" . addslashes(\$frm['$k']) . \"'\n"; $delim = 'AND'; } echo <<setColumn('$db_tbl.$primary_key', '$db_tbl.$primary_key ASC', '$db_tbl.$primary_key DESC');\n"; foreach ($c as $k=>$v) { echo "\$so->setColumn('$db_tbl.$k', '$db_tbl.$k ASC', '$db_tbl.$k DESC');\n"; } } echo isset($op) ? '' : "\n\n\n"; // Search SQL if (!isset($op) || 'search' == $op) { $search_skip_columns = array('added_datetime', 'added_by_user_id', 'modified_datetime', 'modified_by_user_id', 'publish', 'featured'); $search_columns = $db_tbl . '.' . join(" LIKE '%\" . addslashes(\$qry_words[\$i]) . \"%'\n OR $db_tbl.", array_diff(array_keys($c), $search_skip_columns)); echo <<