]> git.joonet.de Git - adminer.git/commitdiff
Use REPLACE in CSV import
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Sat, 29 Aug 2009 13:55:09 +0000 (13:55 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Sat, 29 Aug 2009 13:55:09 +0000 (13:55 +0000)
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1045 7c3ca157-0c34-0410-bff1-cbf682f78f5c

adminer/select.inc.php

index 1b3f5a0175a9e610510ccd8081f5b17f4decd018..1e076be536c2e38d9afeae76b58439c746c02d40 100644 (file)
@@ -90,7 +90,8 @@ if ($_POST && !$error) {
                        $affected = 0;
                        $length = 0;
                        $result = true;
-                       $query = "INSERT INTO " . idf_escape($_GET["select"]);
+                       $dbh->query("SET foreign_key_checks = 0");
+                       $query = "REPLACE " . idf_escape($_GET["select"]); // ON DUPLICATE KEY UPDATE would require one query per record
                        $packet_size = $dbh->result($dbh->query("SELECT @@max_allowed_packet"));
                        $rows = array();
                        preg_match_all('~("[^"]*"|[^"\\n])+~', $file, $matches);
@@ -111,7 +112,7 @@ if ($_POST && !$error) {
                                                if (!$result) {
                                                        break;
                                                }
-                                               $affected += $dbh->affected_rows;
+                                               $affected += count($rows);
                                                $length = strlen($query);
                                                $rows = array();
                                        }
@@ -124,7 +125,7 @@ if ($_POST && !$error) {
                        }
                        if ($result) {
                                $result = queries($query . implode(",", $rows));
-                               $affected += $dbh->affected_rows;
+                               $affected += count($rows);
                        }
                        query_redirect(queries(), remove_from_uri("page"), lang('%d row(s) have been imported.', $affected), $result, false, !$result);
                } else {