WordPress.org

Make WordPress Core

Ticket #6836: insert.type.diff

File insert.type.diff, 1.1 KB (added by DD32, 10 years ago)
  • wp-includes/wp-db.php

     
    2525        var $queries;
    2626        var $prefix = '';
    2727        var $ready = false;
     28        var $last_result;
    2829
    2930        // Our tables
    3031        var $posts;
     
    330331         * Insert an array of data into a table
    331332         * @param string $table WARNING: not sanitized!
    332333         * @param array $data should not already be SQL-escaped
     334         * @param array $types should be key => sprintf style format specifier
    333335         * @return mixed results of $this->query()
    334336         */
    335         function insert($table, $data) {
     337        function insert($table, $data, $types = array()) {
    336338                $data = add_magic_quotes($data);
    337339                $fields = array_keys($data);
     340                $fields = add_magic_quotes($fields);
     341                foreach( (array)$types as $key => $type ) {
     342                        if( ! isset($data[$key]) )
     343                                continue;
     344                        $data[$key] = sprintf($type, $data[$key]);
     345                }
     346
    338347                return $this->query("INSERT INTO $table (`" . implode('`,`',$fields) . "`) VALUES ('".implode("','",$data)."')");
    339348        }
    340349