Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak używać wstawiania w konstruktorze zapytań wstawiać wiele rekordów?

Właśnie przetestowany. To działa.

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

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

Alarm! Istnieją dwa sposoby na masowe wstawianie. To jest jeden sposób:

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

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

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

Jak sugeruje ndm, wolę ten sposób.

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

    $insertQuery->insert($columns);

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

    $insertQuery->execute();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ON DUPLICATE KEY UPDATE podczas wstawiania zestawu wyników z zapytania

  2. Jak wstawić javascript do bazy mysql?

  3. Czy kolumny VARCHAR powinny być umieszczane na końcu definicji tabel w MySQL?

  4. Hibernacja Soft Delete przy użyciu aktualizacji Cascade

  5. MySQL wyszukaj dokładne słowo z $ w słowie