Skip to content
Browse files

Driver specific INSERT INTO

git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1484 7c3ca157-0c34-0410-bff1-cbf682f78f5c
  • Loading branch information...
1 parent e780f9b commit 341362a8fa9b21ba2ec2aa3c023db37cd52b93a8 jakubvrana committed Apr 23, 2010
View
9 adminer/drivers/mysql.inc.php
@@ -680,6 +680,15 @@ function trigger_options() {
);
}
+ /** Insert data into table
+ * @param string
+ * @param array
+ * @return bool
+ */
+ function insert_into($table, $set) {
+ return queries("INSERT INTO " . idf_escape($table) . " (" . implode(", ", array_keys($set)) . ")\nVALUES (" . implode(", ", $set) . ")");
+ }
+
/** Explain select
* @param Min_DB
* @param string
View
4 adminer/drivers/pgsql.inc.php
@@ -440,6 +440,10 @@ function trigger_options() {
);
}
+ function insert_into($table, $set) {
+ return queries("INSERT INTO " . idf_escape($table) . ($set ? " (" . implode(", ", array_keys($set)) . ")\nVALUES (" . implode(", ", $set) . ")" : "DEFAULT VALUES"));
+ }
+
function explain($connection, $query) {
return $connection->query("EXPLAIN $query");
}
View
4 adminer/drivers/sqlite.inc.php
@@ -474,6 +474,10 @@ function trigger_options() {
);
}
+ function insert_into($table, $set) {
+ return queries("INSERT INTO " . idf_escape($table) . ($set ? " (" . implode(", ", array_keys($set)) . ")\nVALUES (" . implode(", ", $set) . ")" : "DEFAULT VALUES"));
+ }
+
function explain($connection, $query) {
return $connection->query("EXPLAIN $query");
}
View
2 adminer/edit.inc.php
@@ -31,7 +31,7 @@
}
query_redirect("UPDATE" . limit1(idf_escape($TABLE) . " SET" . implode(",", $set) . "\nWHERE $where"), $location, lang('Item has been updated.'));
} else {
- query_redirect("INSERT INTO " . idf_escape($TABLE) . " (" . implode(", ", array_keys($set)) . ")\nVALUES (" . implode(", ", $set) . ")", $location, lang('Item has been inserted.'));
+ queries_redirect($location, lang('Item has been inserted.'), insert_into($TABLE, $set));
}
}
}
View
10 adminer/include/functions.inc.php
@@ -193,11 +193,11 @@ function unique_array($row, $indexes) {
*/
function where($where) {
$return = array();
- foreach (array("where", "null") as $type) {
- foreach ((array) $where[$type] as $key => $val) {
- $key = bracket_escape($key, "back");
- $return[] = (preg_match('~^[A-Z0-9_]+\\(`(?:[^`]|``)+`\\)$~', $key) ? $key : idf_escape($key)) . ($type == "null" ? " IS NULL" : (ereg('\\.', $val) ? " LIKE " . exact_value(addcslashes($val, "%_")) : " = " . exact_value($val))); // LIKE because of floats, but slow with ints //! enum and set, columns looking like functions
- }
+ foreach ((array) $where["where"] as $key => $val) {
+ $return[] = idf_escape($key) . (ereg('\\.', $val) ? " LIKE " . exact_value(addcslashes($val, "%_")) : " = " . exact_value($val)); // LIKE because of floats, but slow with ints //! enum and set
+ }
+ foreach ((array) $where["null"] as $key) {
+ $return[] = idf_escape($key) . " IS NULL";
}
return implode(" AND ", $return);
}

0 comments on commit 341362a

Please sign in to comment.
Something went wrong with that request. Please try again.