Cấu hình nằm tại file
app/config/database.php
. Trong file này thì định nghĩa tất cả những loại kết nối cơ sở dữ liệu, tât nhiên là chúng cũng có loại cơ sở kết nối mặc định. Những ví dụ dưới đây được áp dụng cho tất cả những loại cơ sở dữ liệu mà được cung cấp trong file này.Hiện tại thì Laravel hổ trợ những hệ thống cơ sở dữ liệu sau: MySQL, Postgres, SQLite, và SQL Server.Cấu hình kết nối cơ sở dữ liệu trong Laravel Framework
– Các bạn mở file
app/config/database.php
và tìm tới dòng cấu hình
1
2
3
4
5
6
7
8
9
10
| 'mysql' => array ( 'driver' => 'mysql' , 'host' => 'localhost' , 'database' => 'laravel' , 'username' => 'root' , 'password' => '' , 'charset' => 'utf8' , 'collation' => 'utf8_unicode_ci' , 'prefix' => '' , ), |
Với đoạn cấu hình trên thì các bạn cần quan tâm cho mình 4 thông số cấu hình sau:
host
: Cấu hình host,các bạn giữ nguyên là localhostdatabase
: Cấu hình tên cơ sở dữ liệu mà bạn đang sử dụngusername
: Tài khoản có quyền truy cập vào cơ sở dữ liệupassword
: Mật khẩu của tài khoản ở trên
Do mình đang sử dụng Xampp lên mặc định
Để phục vụ cho những đoạn code test này mình sẽ tạo 1 bảng dữ liệu sau:
username = 'root'
và password = ''
Để phục vụ cho những đoạn code test này mình sẽ tạo 1 bảng dữ liệu sau:
1
2
3
4
5
| CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(128) CHARACTER SET utf8 NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=12 ; |
Thực hiện chạy câu lệnh truy vấn
Sau khi đã kết nối vào hệ thống, tiếp đến ta tiến hành thực hiện chạy thử các câu truy vấn sau để thử nghiệm nhé.
1.Chạy câu lệnh truy vấn dữ liệu
1.Chạy câu lệnh truy vấn dữ liệu
1
| $results = DB::select( 'select * from users where id = ?' , array (1)); |
Vơi phương thức
2.Chạy câu lệnh thêm dữ liệu vào cơ sở dữ liệu
select
chúng ta sẽ lấy ra được dữ liệu trả về dạng mảng2.Chạy câu lệnh thêm dữ liệu vào cơ sở dữ liệu
1
| DB::insert( 'insert into users (id, name) values (?, ?)' , array (1, 'hocphp' )); |
3.Chạy câu lệnh cập nhật dữ liệu
1
| DB::update( 'update users set name = "nobitacnt" where id = ?' , array ( '1' )); |
4.Chạy câu lệnh xóa dữ liệu
1
| DB:: delete ( 'delete from users' ); |
Ghi chú: Câu lệnh
5.Chạy câu lệnh xóa bảng
insert
và câu lệnh delete
luôn trả về con số record bị ảnh hưởng5.Chạy câu lệnh xóa bảng
1
| DB::statement( 'drop table users' ); |
Database Transactions
Để thao tác những câu lệnh bên trong transaction cơ sở dữ liệu, bạn có thể dùng phương thức transaction
1
2
3
4
5
6
| DB::transaction( function () { DB::table( 'users' )->update( array ( 'id' => 1)); DB::table( 'posts' )-> delete (); }); |
Ghi chú: Bất kỳ câu lệnh nào cũng được đưa vào transaction, và transaction cũng sẽ thực thi rollback một cách tự động
1. Để bắt đầu 1 transaction ta thực hiện
1. Để bắt đầu 1 transaction ta thực hiện
1
| DB::beginTransaction(); |
2. Bạn cũng có thể rollback qua phương thức
1
| DB::rollback(); |
3. Cuối cùng thì bạn cần commit nó lên
1
| DB::commit(); |
Accessing Connections
Khi mà bạn sử dụng nhiều hơn 1 cơ sở dữ liệu và muốn thực hiện truy vấn thì các bạn có thể sử dụng phương thức
Ví dụ mình có cấu hình như sau,với 2 cơ sở dữ liệu
DB::connection
Ví dụ mình có cấu hình như sau,với 2 cơ sở dữ liệu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| //cơ sở dữ liệu 1,là chính 'mysql' => array ( 'driver' => 'mysql' , 'host' => 'localhost' , 'database' => 'laravel' , 'username' => 'root' , 'password' => '' , 'charset' => 'utf8' , 'collation' => 'utf8_unicode_ci' , 'prefix' => '' , ), //cơ sở dữ liệu 2 'mysql2' => array ( 'driver' => 'mysql' , 'host' => 'localhost' , 'database' => 'laravel2' , 'username' => 'root' , 'password' => '' , 'charset' => 'utf8' , 'collation' => 'utf8_unicode_ci' , 'prefix' => '' , ), |
Và kết nối mặc định của chúng ta sẽ kết nối tới cơ sở dữ liệu
mysql
,còn trong trường hợp muốn kết nối tới cơ sở dữ liệu 2 ta sử dụng:
1
2
| $users = DB::connection( 'mysql2' )->select( 'select * from user' ); print_r( $users ); |
Nhận xét
Đăng nhận xét