WordPress.org

Make WordPress Core

Ticket #6836: insert.type.diff

File insert.type.diff, 1.1 KB (added by DD32, 6 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