Php 插入多个数据

Php 插入多个数据,php,mysql,insert,Php,Mysql,Insert,我如何做错我想从阵列插入到db数据: $tabb = array( 'name' => 'test', 'login' => 'testt'); 但我不能使用SET,因为查询的结尾是char public function insert($table, $values){ if($this->database){ print_r($values); $we = 'INSERT INTO '. $table .' SET '; foreach($values as $

我如何做错我想从阵列插入到db数据:

$tabb = array(
  'name' => 'test',
  'login' => 'testt');
但我不能使用SET,因为查询的结尾是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;
}
我打印$we:

INSERT INTO user SET (name = "test") (login = "testt")
不行,请帮忙
php

我真的建议避免
SET
。它的普遍性要低得多,如果你能在不常见和普通之间做出选择,就要始终遵循普通原则——这意味着你的社区能提供更广泛、更快、更好的支持

以下是您在没有它的情况下如何处理该问题:

如果
用户
表中只有两列,则只需使用
,后跟逗号分隔的数据集列表:

INSERT INTO user VALUES ("test","testt"),("test2","testt2")
您的函数看起来并不是针对这一点的,但了解这两种方法都是一件好事

但看起来您是按列名插入的(一般来说这是个好主意):

使用PHP,这将成为:

$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;

您需要将
(name=“test”)(login=“testt”)
与“,”分开,在它们之间
(name=“test”),(login=“testt”)

另一种方法是:
插入用户(名称、登录名)值(“test”、“testt”)

或者,如果你想耍花招:

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;
}

如何从foreach命名和登录?MySQL还允许设置语法。
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;
}
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;
}
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());
}