diff --git a/adminer/drivers/mssql.inc.php b/adminer/drivers/mssql.inc.php index 2e9007b4a..690e4f2de 100644 --- a/adminer/drivers/mssql.inc.php +++ b/adminer/drivers/mssql.inc.php @@ -394,6 +394,10 @@ function auto_increment() { return " IDENTITY"; } + function begin() { + return queries("BEGIN TRANSACTION"); + } + function insert_into($table, $set) { return queries("INSERT INTO " . idf_escape($table) . ($set ? " (" . implode(", ", array_keys($set)) . ")\nVALUES (" . implode(", ", $set) . ")" : "DEFAULT VALUES")); } diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php index e11bd75b2..16962f205 100644 --- a/adminer/drivers/mysql.inc.php +++ b/adminer/drivers/mysql.inc.php @@ -680,6 +680,13 @@ function trigger_options() { ); } + /** Begin transaction + * @return bool + */ + function begin() { + return queries("BEGIN"); + } + /** Insert data into table * @param string * @param array diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index ae2c5adc1..9ab53ea0a 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -440,6 +440,10 @@ function trigger_options() { ); } + function begin() { + return queries("BEGIN"); + } + function insert_into($table, $set) { return queries("INSERT INTO " . idf_escape($table) . ($set ? " (" . implode(", ", array_keys($set)) . ")\nVALUES (" . implode(", ", $set) . ")" : "DEFAULT VALUES")); } diff --git a/adminer/drivers/sqlite.inc.php b/adminer/drivers/sqlite.inc.php index 5563912a4..aa161c50c 100644 --- a/adminer/drivers/sqlite.inc.php +++ b/adminer/drivers/sqlite.inc.php @@ -474,6 +474,10 @@ function trigger_options() { ); } + function begin() { + return queries("BEGIN"); + } + function insert_into($table, $set) { return queries("INSERT INTO " . idf_escape($table) . ($set ? " (" . implode(", ", array_keys($set)) . ")\nVALUES (" . implode(", ", $set) . ")" : "DEFAULT VALUES")); } diff --git a/adminer/select.inc.php b/adminer/select.inc.php index 8e0db84d5..3c56bf062 100644 --- a/adminer/select.inc.php +++ b/adminer/select.inc.php @@ -126,7 +126,7 @@ $cols = array_keys($fields); preg_match_all('~(?>"[^"]*"|[^"\\r\\n]+)+~', $file, $matches); $affected = count($matches[0]); - queries("START TRANSACTION"); + begin(); $separator = ($_POST["separator"] == "csv" ? "," : ";"); foreach ($matches[0] as $key => $val) { preg_match_all("~((\"[^\"]*\")+|[^$separator]*)$separator~", $val . $separator, $matches2); @@ -313,7 +313,7 @@ $id = h("val[$unique_idf][" . bracket_escape($key) . "]"); $value = $_POST["val"][$unique_idf][bracket_escape($key)]; $h_value = h(isset($value) ? $value : $row[$key]); - $editable = is_utf8($val) && !strpos($val, "..."); + $editable = is_utf8($val) && !strpos($val, "..."); //! function results, not unique key $text = ereg('text|blob', $field["type"]); echo (($_GET["modify"] && $editable) || isset($value) ? "" . ($text ? "" : "")