sql >> Databasteknik >  >> RDS >> Mysql

Hur använder man infoga i frågebyggaren infoga flera poster?

Har precis testat. Det här fungerar.

   $newUsers = [
        [
            'username' => 'Felicia',
            'age' => 27,
        ],
        [
            'username' => 'Timmy',
            'age' => 71,
        ],
    ];

    $columns = array_keys($newUsers[0]);

Varna! Det finns två sätt att göra massinsättning. Detta är ett sätt:

    $insertQuery = $this->Users->query();

    $newUsersValuesExpression = new ValuesExpression($columns, $insertQuery->typeMap()->types([]));
    $newUsersValuesExpression->values($newUsers);

    $insertQuery->insert($columns)
                ->values($newUsersValuesExpression)
                ->execute();

Som föreslagits av ndm föredrar jag det här sättet.

    $insertQuery = $this->Users->query();

    $insertQuery->insert($columns);

    // you must always alter the values clause AFTER insert
    $insertQuery->clause('values')->values($newUsers);

    $insertQuery->execute();


  1. SQL-skärningsbilder och exempel

  2. Så här konfigurerar du kluster-till-klusterreplikering för PostgreSQL

  3. SQL Server Databas Objects Statistik

  4. Det går inte att komma åt Sonar MySQL-databasen Orsakad av:java.sql.SQLE Undantag:Åtkomst nekad för användaren 'sonar'@'glassfishdev.ccs.local' (med lösenord:JA)