diff --git a/include/class.user.php b/include/class.user.php index 758b5ef01d2afd03f37512fe2331b5709f6adb48..97d6c52d3d3cde70a86586e104d7667dab48dfa1 100644 --- a/include/class.user.php +++ b/include/class.user.php @@ -457,14 +457,22 @@ class User extends UserModel { $users[] = $data; } + db_autocommit(false); + $error = false; foreach ($users as $u) { $vars = array_combine($keys, $u); - if (!static::fromVars($vars)) - return sprintf(__('Unable to import user: %s'), + if (!static::fromVars($vars)) { + $error = sprintf(__('Unable to import user: %s'), print_r($vars, true)); + break; + } } + if ($error) + db_rollback(); + + db_autocommit(true); - return count($users); + return $error ?: count($users); } function importFromPost($stuff, $extra=array()) { diff --git a/include/mysqli.php b/include/mysqli.php index ed70cd82ef3c5fc8ae0f209759ed9c969f2ceb61..1793f889e262edb157241497f415af96c71da652 100644 --- a/include/mysqli.php +++ b/include/mysqli.php @@ -90,6 +90,12 @@ function db_autocommit($enable=true) { return $__db->autocommit($enable); } +function db_rollback() { + global $__db; + + return $__db->rollback(); +} + function db_close() { global $__db; return @$__db->close();