class Min_Driver extends Min_SQL {
function select($table, $select, $where, $group, $order, $limit, $page, $print = false) {
- global $connection;
$select = ($select == array("*")
? array()
: array_fill_keys($select, true)
$val = preg_replace('~ DESC$~', '', $val, 1, $count);
$sort[$val] = ($count ? -1 : 1);
}
- return new Min_Result(iterator_to_array($connection->_db->selectCollection($table)
+ return new Min_Result(iterator_to_array($this->_conn->_db->selectCollection($table)
->find(array(), $select)
->sort($sort)
->limit(+$limit)
->skip($page * $limit)
));
}
+
+ function insert($table, $set) {
+ try {
+ $return = $this->_conn->_db->selectCollection($table)->insert($set);
+ $this->_conn->errno = $return['code'];
+ $this->_conn->error = $return['err'];
+ return !$return['err'];
+ } catch (Exception $ex) {
+ $this->_conn->error = $ex->getMessage();
+ return false;
+ }
+ }
}
}
if (!support("table") && !$fields) {
+ $id = ($jush == "mongo" ? "_id" : "itemName()"); // simpledb
if (!$where) { // insert
- $row = reset(get_rows("SELECT * FROM " . table($TABLE) . " LIMIT 1"));
- if (!$row) {
- $row = array("itemName()" => "");
- }
+ $row = $driver->select($TABLE, array("*"), $where, array("*"), array(), 1, 0);
+ $row = ($row ? $row->fetch_assoc() : array($id => ""));
}
if ($row) {
foreach ($row as $key => $val) {
if (!$where) {
$row[$key] = null;
}
- $fields[$key] = array("field" => $key, "null" => ($key != "itemName()"), "auto_increment" => ($key == "itemName()"));
+ $fields[$key] = array("field" => $key, "null" => ($key != $id), "auto_increment" => ($key == $id));
}
}
}