]> git.joonet.de Git - adminer.git/commitdiff
NULL and \r in CSV import
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Wed, 2 Sep 2009 09:35:50 +0000 (09:35 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Wed, 2 Sep 2009 09:35:50 +0000 (09:35 +0000)
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1058 7c3ca157-0c34-0410-bff1-cbf682f78f5c

adminer/select.inc.php

index e0eb2abf9fa00e1b40dc1aedf489a61e325a0fe3..1c3fa31727377c5d9144b38d02984ee3b4d2b193 100644 (file)
@@ -90,7 +90,7 @@ if ($_POST && !$error) {
                        $file = preg_replace("~^\xEF\xBB\xBF~", '', $file); //! character set
                        $result = true;
                        $cols = array_keys($fields);
-                       preg_match_all('~("[^"]*"|[^"\\n])+~', $file, $matches);
+                       preg_match_all('~("[^"]*"|[^"\\r\\n])+~', $file, $matches);
                        $affected = count($matches[0]);
                        foreach ($matches[0] as $key => $val) {
                                preg_match_all('~(("[^"]*")+|[^,]*),~', "$val,", $matches2);
@@ -101,7 +101,7 @@ if ($_POST && !$error) {
                                } else {
                                        $set = "";
                                        foreach ($matches2[1] as $i => $col) {
-                                               $set .= ", " . idf_escape($cols[$i]) . " = " . (!strlen($col) ? "NULL" : $dbh->quote(str_replace('""', '"', preg_replace('~^"|"$~', '', $col))));
+                                               $set .= ", " . idf_escape($cols[$i]) . " = " . (!strlen($col) && $fields[$cols[$i]]["null"] ? "NULL" : $dbh->quote(str_replace('""', '"', preg_replace('~^"|"$~', '', $col))));
                                        }
                                        $set = substr($set, 2);
                                        $result = queries("INSERT INTO " . idf_escape($_GET["select"]) . " SET $set ON DUPLICATE KEY UPDATE $set");