]> git.joonet.de Git - adminer.git/commitdiff
Detect import errors
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Thu, 16 Apr 2009 13:18:22 +0000 (13:18 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Thu, 16 Apr 2009 13:18:22 +0000 (13:18 +0000)
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@582 7c3ca157-0c34-0410-bff1-cbf682f78f5c

select.inc.php

index d82fa567153ec003194d9154e4461c158cd13c5e..51ab6826eadb0caf0cc2756a8e08e671325faa8c 100644 (file)
@@ -82,26 +82,7 @@ if ($_POST && !$error) {
                }
                exit;
        }
-       if ($_POST["import"]) {
-               $file = preg_replace("~^\xEF\xBB\xBF~", '', get_file("csv_file")); //! character set
-               $cols = "";
-               $rows = array(); //! packet size
-               preg_match_all('~("[^"]*"|[^"\\n]+)+~', $file, $matches);
-               foreach ($matches[0] as $key => $val) {
-                       $row = array();
-                       preg_match_all('~(("[^"]*")+|[^,]*),~', "$val,", $matches2);
-                       if (!$key && !array_diff($matches2[1], array_keys($fields))) { //! doesn't work with column names containing ",\n
-                               $cols = " (" . implode(", ", array_map('idf_escape', $matches2[1])) . ")";
-                       } else {
-                               foreach ($matches2[1] as $col) {
-                                       $row[] = (!strlen($col) ? "NULL" : "'" . $mysql->escape_string(str_replace('""', '"', preg_replace('~^".*"$~s', '', $col))) . "'");
-                               }
-                               $rows[] = "(" . implode(", ", $row) . ")";
-                       }
-               }
-               $result = queries("INSERT INTO " . idf_escape($_GET["select"]) . "$cols VALUES " . implode(", ", $rows));
-               query_redirect(queries(), remove_from_uri("page"), lang('%d row(s) has been imported.', $mysql->affected_rows), $result, false, !$result);
-       } else {
+       if (!$_POST["import"]) { // edit
                $result = true;
                $affected = 0;
                $command = ($_POST["delete"] ? ($_POST["all"] && !$where ? "TRUNCATE " : "DELETE FROM ") : ($_POST["clone"] ? "INSERT INTO " : "UPDATE ")) . idf_escape($_GET["select"]);
@@ -134,6 +115,27 @@ if ($_POST && !$error) {
                }
                query_redirect(queries(), remove_from_uri("page"), lang('%d item(s) have been affected.', $affected), $result, false, !$result);
                //! display edit page in case of an error
+       } elseif (is_string($file = get_file("csv_file"))) {
+               $file = preg_replace("~^\xEF\xBB\xBF~", '', $file); //! character set
+               $cols = "";
+               $rows = array(); //! packet size
+               preg_match_all('~("[^"]*"|[^"\\n]+)+~', $file, $matches);
+               foreach ($matches[0] as $key => $val) {
+                       $row = array();
+                       preg_match_all('~(("[^"]*")+|[^,]*),~', "$val,", $matches2);
+                       if (!$key && !array_diff($matches2[1], array_keys($fields))) { //! doesn't work with column names containing ",\n
+                               $cols = " (" . implode(", ", array_map('idf_escape', $matches2[1])) . ")";
+                       } else {
+                               foreach ($matches2[1] as $col) {
+                                       $row[] = (!strlen($col) ? "NULL" : "'" . $mysql->escape_string(str_replace('""', '"', preg_replace('~^".*"$~s', '', $col))) . "'");
+                               }
+                               $rows[] = "(" . implode(", ", $row) . ")";
+                       }
+               }
+               $result = queries("INSERT INTO " . idf_escape($_GET["select"]) . "$cols VALUES " . implode(", ", $rows));
+               query_redirect(queries(), remove_from_uri("page"), lang('%d row(s) has been imported.', $mysql->affected_rows), $result, false, !$result);
+       } else {
+               $error = lang('Unable to upload a file.');
        }
 }
 page_header(lang('Select') . ": " . htmlspecialchars($_GET["select"]), $error);