浏览代码

MongoDB: Don't store unset values

Jakub Vrana 11 年之前
父节点
当前提交
ed130065
共有 3 个文件被更改,包括 16 次插入4 次删除
  1. 4 0
      adminer/drivers/mongo.inc.php
  2. 8 0
      adminer/include/driver.inc.php
  3. 4 4
      adminer/include/functions.inc.php

+ 4 - 0
adminer/drivers/mongo.inc.php

@@ -116,6 +116,10 @@ if (isset($_GET["mongo"])) {
 	class Min_Driver extends Min_SQL {
 		public $primary = "_id";
 		
+		function quote($value) {
+			return ($value === null ? $value : parent::quote($value));
+		}
+		
 		function select($table, $select, $where, $group, $order, $limit, $page, $print = false) {
 			$select = ($select == array("*")
 				? array()

+ 8 - 0
adminer/include/driver.inc.php

@@ -10,6 +10,14 @@
 		$this->_conn = $connection;
 	}
 	
+	/** Quote a SQL string or null value
+	* @param string
+	* @return string
+	*/
+	function quote($value) {
+		return ($value === null ? "NULL" : $this->_conn->quote($value));
+	}
+	
 	/** Select data from table
 	* @param string
 	* @param array result of $adminer->selectColumnsProcess()[0]

+ 4 - 4
adminer/include/functions.inc.php

@@ -249,13 +249,13 @@ function sid() {
 	return $return;
 }
 
-/** Shortcut for $connection->quote($string)
+/** Shortcut for $driver->quote($string)
 * @param string
 * @return string
 */
 function q($string) {
-	global $connection;
-	return $connection->quote($string);
+	global $driver;
+	return $driver->quote($string);
 }
 
 /** Get list of values from database
@@ -880,7 +880,7 @@ function process_input($field) {
 		return ($field["on_update"] == "CURRENT_TIMESTAMP" ? idf_escape($field["field"]) : false);
 	}
 	if ($function == "NULL") {
-		return "NULL";
+		$value = null;
 	}
 	if ($field["type"] == "set") {
 		return array_sum((array) $value);