Ticket #5178 (closed enhancement: fixed)

Opened 1 year ago

Last modified 1 year ago

New $wpdb methods: insert(), update()

Reported by: markjaquith Assigned to: anonymous
Priority: normal Milestone: 2.5
Component: General Version:
Severity: normal Keywords:
Cc:

Description (Last modified by markjaquith)

Ryan proposed these methods to me. I cleaned them up a bit and added sanitization.

	/**
	 * Insert an array of data into a table
	 * @param string $table WARNING: not sanitized!
	 * @param array $data should not already be SQL-escaped
	 * @return mixed results of $this->query()
	 */
	function insert($table, $data) {
		$data = add_magic_quotes($data);
		$fields = array_keys($data);
		return $this->query("INSERT INTO $table (`" . implode('`,`',$fields) . "`) VALUES ('".implode("','",$data)."')");
	}

	/**
	 * Update a row in the table with an array of data
	 * @param string $table WARNING: not sanitized!
	 * @param array $data should not already be SQL-escaped
	 * @param string $where_col the column of the WHERE statement.  WARNING: not sanitized!
	 * @param string $where_val the value of the WHERE statement.  Should not already be SQL-escaped.
	 * @return mixed results of $this->query()
	 */
	function update($table, $data, $where_col, $where_val){
		$data = add_magic_quotes($data);
		$bits = array();
		foreach ( array_keys($data) as $k )
			$bits[] = "`$k`='$data[$k]'";
		$where_val = $this->escape($where_val);
		return $this->query("UPDATE $table SET ".implode(', ',$bits)." WHERE $where_col = '$where_val' LIMIT 1");
	}

First place to use this is in wp_insert_post()

Change History

10/10/07 22:01:41 changed by markjaquith

  • status changed from new to closed.
  • resolution set to fixed.

(In [6221]) Introducing db_insert() and db_update(), with immediate usage in wp_insert_post(). fixes #5178

10/13/07 00:48:52 changed by markjaquith

(In [6237]) More use of db_insert()/db_update(). see #5178

10/13/07 00:54:26 changed by markjaquith

(In [6238]) Remove redundant "db_" from db_insert() and db_update() methods. Now just insert() and update(). see #5178

10/13/07 00:55:42 changed by markjaquith

  • description changed.
  • summary changed from New $wpdb methods: db_insert(), db_update() to New $wpdb methods: insert(), update().

Changed the method names.