Driver specific INSERT INTO

git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1484 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
jakubvrana 2010-04-23 09:03:27 +00:00
parent e780f9bb05
commit 341362a8fa
5 changed files with 23 additions and 6 deletions

View file

@ -680,6 +680,15 @@ if (!defined("DRIVER")) {
);
}
/** 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 file

@ -440,6 +440,10 @@ WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name = " . $connection->qu
);
}
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 file

@ -474,6 +474,10 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
);
}
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 file

@ -31,7 +31,7 @@ if ($_POST && !$error && !isset($_GET["select"])) {
}
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 file

@ -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);
}