Laravel chèn nhiều dữ liệu vào cơ sở dữ liệu

Chèn nhiều bản ghi vào MySQL bằng MySQLi và PDO

Nhiều câu lệnh SQL phải được thực thi với hàm mysqli_multi_query[]

Các ví dụ sau đây thêm ba bản ghi mới vào bảng "MyGuests"

Ví dụ [Hướng đối tượng MySQLi]

$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";
$dbname = "myDB";

// Tạo kết nối
$conn = new mysqli[$servername, $username, $password, $dbname];
// Kiểm tra kết nối . ". $conn->connect_error];
if [$conn->connect_error] {
  die["Connection failed: " . $conn->connect_error];
}

$sql = "CHÈN VÀO MyGuests [tên, họ, email]
GIÁ TRỊ ['John', 'Doe', 'john@example. com'];";
$sql. = "CHÈN VÀO MyGuests [tên, họ, email]
GIÁ TRỊ ['Mary', 'Moe', 'mary@example. com'];";
$sql. = "CHÈN VÀO MyGuests [tên, họ, email]
GIÁ TRỊ ['Julie', 'Dooley', 'julie@example. com']";

if [$conn->multi_query[$sql] === TRUE] {
  echo "Bản ghi mới được tạo thành công";
} other . ". $sql. "
  echo "Error: " . $sql . "
". $conn->lỗi;
}

$conn->close[];
?>


Lưu ý rằng mỗi câu lệnh SQL phải được phân tách bằng dấu chấm phẩy

Ví dụ [Thủ tục MySQLi]

$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";
$dbname = "myDB";

// Tạo kết nối
$conn = mysqli_connect[$servername, $username, $password, $dbname];
// Kiểm tra kết nối< . $conn] {
if [!$conn] {
  die["Kết nối không thành công. ". mysqli_connect_error[]];
}

$sql = "CHÈN VÀO MyGuests [tên, họ, email]
GIÁ TRỊ ['John', 'Doe', 'john@example. com'];";
$sql. = "CHÈN VÀO MyGuests [tên, họ, email]
GIÁ TRỊ ['Mary', 'Moe', 'mary@example. com'];";
$sql. = "CHÈN VÀO MyGuests [tên, họ, email]
GIÁ TRỊ ['Julie', 'Dooley', 'julie@example. com']";

if [mysqli_multi_query[$conn, $sql]] {
  echo "Bản ghi mới được tạo thành công";
} else {
  echo "Error: " . $sql . "
". mysqli_error[$conn];
}

mysqli_close[$conn];
?>


Cách PDO hơi khác một chút

Ví dụ [PDO]

$servername = "localhost";
$username = "tên người dùng";
$password = "mật khẩu";
$dbname = "myDBPDO";

thử {
  $conn = new PDO["mysql. host=$servername;dbname=$dbname", $username, $password];
  // ​​đặt chế độ lỗi PDO thành ngoại lệ
  $conn->setAttribute . ATTR_ERRMODE, PDO. ERRMODE_EXCEPTION];

  // ​​bắt đầu giao dịch
  $conn->beginTransaction[];
  // ​​câu lệnh SQL của chúng tôi
. com']"];
  VALUES ['John', 'Doe', 'john@example.com']"];
  $conn->exec["CHÈN VÀO MyGuests [tên, họ, email]
  VALUES ['Mary', 'Moe' . com']"];
  $conn->exec["CHÈN VÀO MyGuests [tên, họ, email]
  VALUES ['Julie', 'Dooley' . com']"];

  // thực hiện giao dịch
  $conn->commit[];
  echo "Bản ghi mới được tạo thành công";
} catch[PDOException $e] {
  // roll back the transaction if something failed
  $conn->rollback[];
  echo "Error: " . $e->getMessage[];
}

$conn = null;
?>


Thực sự dễ dàng thực hiện thao tác chèn hàng loạt trong Laravel có hoặc không có trình tạo truy vấn. Bạn có thể sử dụng cách tiếp cận chính thức sau đây

Entity::upsert[[
    ['name' => 'Pierre Yem Mback', 'city' => 'Eseka', 'salary' => 10000000],
    ['name' => 'Dial rock 360', 'city' => 'Yaounde', 'salary' => 20000000],
    ['name' => 'Ndibou La Menace', 'city' => 'Dakar', 'salary' => 40000000]
], ['name', 'city'], ['salary']];

Trong một số trường hợp, chúng tôi cần chèn nhiều bản ghi vào cơ sở dữ liệu. Trong laravel, Bạn có thể chèn nhiều bản ghi vào cơ sở dữ liệu bằng Eloquent Model hoặc Query Builder

Giả sử 1 sinh viên đọc được nhiều môn và bạn muốn lưu trữ thông tin của 1 sinh viên đọc nhiều hơn 1 môn và lưu vào bảng khác với tên student_subjects

Sử dụng Laravel Eloquent Model hoặc Query Builder để chèn nhiều bản ghi vào cơ sở dữ liệu Laravel 9

Trong ví dụ bên dưới, tôi sử dụng biến mảng $createMultipleUsers đa chiều và chèn nhiều bản ghi bằng DB. chèn[]. Vì vậy, hãy xem cách chèn nhiều bản ghi trong laravel 9

$createMultipleUsers = [
    ['name'=>'Admin','email'=>'[email protected]', 'password' => bcrypt['[email protected]']],
    ['name'=>'Guest','email'=>'[email protected]', 'password' => bcrypt['[email protected]']],
    ['name'=>'Account','email'=>'[email protected]', 'password' => bcrypt['[email protected]']]
];

User::insert[$createMultipleUsers]; // Eloquent
\DB::table['users']->insert[$createMultipleUsers]; // Query Builder

Sử dụng Laravel Seeder để chèn nhiều bản ghi vào cơ sở dữ liệu Laravel 9

Bạn có thể tạo dữ liệu giả bằng cách sử dụng Model Factory và faker để tạo dữ liệu giả [có quan hệ, v.v. ] để phát triển và thử nghiệm ứng dụng của bạn. Ở đây bạn cần sử dụng lớp faker để tạo người dùng thử nghiệm. Hãy xem cách chúng tôi có thể sử dụng faker để tạo hồ sơ giả

1. Tạo Laravel Seeder

php artisan make:seeder PostSeeder

2. Truy cập database/seeders và chỉnh sửa tệp PostSeeder.php 

 $faker->text,
                'slug' => $faker->slug,
                'description' => $faker->text,
                'content' => $faker->content
            ]];
        }
    }
}

3. sử dụng db. lệnh hạt giống, Chạy lệnh sau

php artisan db:seed --class=PostSeeder

Cảm ơn bạn đã đọc bài viết này

đọc thêm. Cách đọc các biến môi trường trong Node. js

Nếu bạn muốn quản lý Máy chủ VPS / VM của mình mà không cần chạm vào dòng lệnh, hãy xem liên kết này. ServerAvatar cho phép bạn thiết lập nhanh các trang web WordPress hoặc PHP tùy chỉnh trên VPS / VM chỉ trong vài phút. Bạn có thể lưu trữ nhiều trang web trên một VPS / VM, định cấu hình chứng chỉ SSL và theo dõi tình trạng của máy chủ mà không cần chạm vào giao diện dòng lệnh

Nếu bạn có bất kỳ thắc mắc hoặc nghi ngờ nào về chủ đề này, vui lòng liên hệ với chúng tôi. Chúng tôi sẽ cố gắng liên lạc với bạn

Làm cách nào để chèn nhiều dữ liệu vào cơ sở dữ liệu bằng laravel?

Sử dụng Laravel Seeder để chèn nhiều bản ghi vào cơ sở dữ liệu Laravel 9 .
Tạo Laravel Seeder. nghệ nhân php làm. seeder PostSeeder
Chuyển đến cơ sở dữ liệu/người gieo hạt và chỉnh sửa Post Seeder. tập tin php.

Chủ Đề