插入多个数据

how i do wrong i want insert to db data from array:

$tabb = array(
  'name' => 'test',
  'login' => 'testt');

but i cant use SET, because end of query is char , .

public function insert($table, $values){

if($this->database){
print_r($values);
$we = 'INSERT INTO '. $table .' SET ';
foreach($values as $value => $key) {
$we .= ' ('. $value .' = "'. $key .'") ';   
}
print $we;
mysql_query($we);

}
return true;
}

i do print $we:

INSERT INTO user SET (name = "test") (login = "testt")

not work, please help php

public function insert($table, $values)
{
    if($this->database)
    {
        print_r($values);
        $we = 'INSERT INTO '. $table .' SET ';
        $sep = '';
        foreach($values as $value => $key)
        {
            $we .= $sep . ' ('. $value .' = "'. mysql_real_escape_string($key) .'") ';
            $sep = ',';
        }
        print $we;
        mysql_query($we);
    }
    return true;
}

Or, if you want to be tricky:

public function insert($table, $values)
{
    if($this->database)
    {
        print_r($values);
        $we = "insert into `".$table. "` (`". implode('`,`',array_keys($fields))."`) values ('".implode("','",array_map('mysql_real_escape_string', $fields))."');";
        print $we;
        mysql_query($we);
    }
    return true;
}

I really recommend avoiding SET. It is far less common and given the choice between something which is uncommon and something which is common, always go with the common -- it means broader, faster, and better support by your community.

Here's how you'd approach that problem without it:

If you only have two columns in your USER table, you can simply use VALUES followed by a comma delineated list of data sets:

INSERT INTO user VALUES ("test","testt"),("test2","testt2")

Your function doesn't look like it is geared towards this, but it is a good thing to know either way.

But it looks like you are inserting by column name (a good idea in general):

INSERT INTO user (name, login) VALUES ("test","testt")

With PHP this becomes:

$items = array_map('mysql_real_escape_string', $values);
$items = '(\'' . implode( '\',\'', $items ) . '\')';
$q = 'INSERT INTO '. 
         $table . 
     // using implode with array_keys assumes that you know all of the keys
     // ahead of time. If you don't, I MUST suggest your re-think your code
     // omit the following line if you want to follow the first SQL example
     ' (' . implode( ',', array_keys( $values ) . ') '.
     ' VALUES ' .
     $items;

You need to seperate (name = "test") (login = "testt") with ", " between them (name = "test"), (login = "testt")

Another way is to do it is:
INSERT INTO user (name, login) VALUES ("test", "testt")

public function insert($table, $values){
    $fields = array();
    $data = array();
    foreach ($values as $key => $val) {
        $fields[] = mysql_real_escape_string($key);
        $data[] = mysql_real_escape_string($val);
    }
    $fields = implode(',', $fields);
    $data = implode(',', $data)

    $sql = "INSERT INTO $table ($fields) VALUES ($data);"
    mysql_query($sql) or die(mysql_error());
}