Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để sử dụng chèn trong trình tạo truy vấn chèn nhiều bản ghi?

Vừa mới thử nghiệm. Điều này hoạt động.

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

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

Báo động! Có hai cách để thực hiện chèn hàng loạt. Đây là một cách:

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

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

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

Theo đề xuất của ndm, tôi thích cách này hơn.

    $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. tồn tại java LocalDate trong MySQL

  2. Không thể AES_DECRYPT sau AES_ENCRYPT trong mysql

  3. LỖI 1305 (42000):SAVEPOINT ... không tồn tại

  4. Chèn vào mySQL một giá trị được mã hóa JSON với các ký tự đặc biệt không thành công

  5. Số lượng nhóm kết nối MySQL