if (class_exists('MongoDB')) {
class Min_DB {
- var $extension = "Mongo", $error, $_link, $_db;
+ var $extension = "Mongo", $error, $last_id, $_link, $_db;
function connect($server, $username, $password) {
global $adminer;
class Min_Driver extends Min_SQL {
+ public $primary = "_id";
+
function select($table, $select, $where, $group, $order, $limit, $page, $print = false) {
$select = ($select == array("*")
? array()
$return = $this->_conn->_db->selectCollection($table)->insert($set);
$this->_conn->errno = $return['code'];
$this->_conn->error = $return['err'];
+ $this->_conn->last_id = $set['_id'];
return !$return['err'];
} catch (Exception $ex) {
$this->_conn->error = $ex->getMessage();
return true;
}
+ function last_id() {
+ global $connection;
+ return $connection->last_id;
+ }
+
function table($idf) {
return $idf;
}
class Min_Driver extends Min_SQL {
+ public $primary = "itemName()";
function _chunkRequest($ids, $action, $params, $expand = array()) {
global $connection;
}
if (!support("table") && !$fields) {
- $id = ($jush == "mongo" ? "_id" : "itemName()"); // simpledb
if (!$where) { // insert
$result = $driver->select($TABLE, array("*"), $where, array("*"), array(), 1, 0);
- if ($result) {
- $row = $result->fetch_assoc();
- }
+ $row = ($result ? $result->fetch_assoc() : false);
if (!$row) {
- $row = array($id => "");
+ $row = array($driver->primary => "");
}
}
if ($row) {
if (!$where) {
$row[$key] = null;
}
- $fields[$key] = array("field" => $key, "null" => ($key != $id), "auto_increment" => ($key == $id));
+ $fields[$key] = array("field" => $key, "null" => ($key != $driver->primary), "auto_increment" => ($key == $driver->primary));
}
}
}
* @return array
*/
function fields_from_edit() {
+ global $driver;
$return = array();
foreach ((array) $_POST["field_keys"] as $key => $val) {
if ($val != "") {
}
foreach ((array) $_POST["fields"] as $key => $val) {
$name = bracket_escape($key, 1); // 1 - back
- $return[$name] = array("field" => $name, "privileges" => array("insert" => 1, "update" => 1), "null" => 1);
+ $return[$name] = array(
+ "field" => $name,
+ "privileges" => array("insert" => 1, "update" => 1),
+ "null" => 1,
+ "auto_increment" => ($key == $driver->primary),
+ );
}
return $return;
}