DSN trong codeigniter là gì?

CodeIgniter có một tệp cấu hình cho phép bạn lưu trữ các giá trị kết nối cơ sở dữ liệu của mình (tên người dùng, mật khẩu, tên cơ sở dữ liệu, v.v. ). Tệp cấu hình được đặt tại app/Config/Database. php. Bạn cũng có thể đặt các giá trị kết nối cơ sở dữ liệu trong. tập tin env. Xem dưới đây để biết thêm chi tiết

Cài đặt cấu hình được lưu trữ trong một thuộc tính lớp là một mảng với nguyên mẫu này

public $default = [
        'DSN'      => '',
        'hostname' => 'localhost',
        'username' => 'root',
        'password' => '',
        'database' => 'database_name',
        'DBDriver' => 'MySQLi',
        'DBPrefix' => '',
        'pConnect' => TRUE,
        'DBDebug'  => TRUE,
        'cacheOn'  => FALSE,
        'cacheDir' => '',
        'charset'  => 'utf8',
        'DBCollat' => 'utf8_general_ci',
        'swapPre'  => '',
        'encrypt'  => FALSE,
        'compress' => FALSE,
        'strictOn' => FALSE,
        'failover' => [],
];

Tên của thuộc tính lớp là tên kết nối và có thể được sử dụng trong khi kết nối để chỉ định tên nhóm

Ghi chú

Vị trí mặc định của cơ sở dữ liệu SQLite3 nằm trong thư mục writable. Nếu bạn muốn thay đổi vị trí, bạn phải đặt đường dẫn đầy đủ đến thư mục mới

Một số trình điều khiển cơ sở dữ liệu (chẳng hạn như PDO, PostgreSQL, Oracle, ODBC) có thể yêu cầu cung cấp chuỗi DSN đầy đủ. Nếu đúng như vậy, bạn nên sử dụng cài đặt cấu hình 'DSN', như thể bạn đang sử dụng tiện ích mở rộng PHP gốc bên dưới của trình điều khiển, như thế này

// PDO
$default['DSN'] = 'pgsql:host=localhost;port=5432;dbname=database_name';

// Oracle
$default['DSN'] = '//localhost/XE';

Ghi chú

Nếu bạn không chỉ định chuỗi DSN cho trình điều khiển yêu cầu nó, CodeIgniter sẽ cố gắng tạo chuỗi đó với phần còn lại của cài đặt được cung cấp

Ghi chú

Nếu bạn cung cấp một chuỗi DSN và nó thiếu một số cài đặt hợp lệ (e. g. bộ ký tự cơ sở dữ liệu), có mặt trong phần còn lại của các trường cấu hình, CodeIgniter sẽ thêm chúng vào

Bạn cũng có thể chỉ định chuyển đổi dự phòng cho tình huống khi kết nối chính không thể kết nối vì lý do nào đó. Các chuyển đổi dự phòng này có thể được chỉ định bằng cách đặt chuyển đổi dự phòng cho một kết nối như thế này

$default['failover'] = [
                [
                        'hostname' => 'localhost1',
                        'username' => '',
                        'password' => '',
                        'database' => '',
                        'DBDriver' => 'MySQLi',
                        'DBPrefix' => '',
                        'pConnect' => TRUE,
                        'DBDebug'  => TRUE,
                        'cacheOn'  => FALSE,
                        'cacheDir' => '',
                        'charset'  => 'utf8',
                        'DBCollat' => 'utf8_general_ci',
                        'swapPre'  => '',
                        'encrypt'  => FALSE,
                        'compress' => FALSE,
                        'strictOn' => FALSE
                ],
                [
                        'hostname' => 'localhost2',
                        'username' => '',
                        'password' => '',
                        'database' => '',
                        'DBDriver' => 'MySQLi',
                        'DBPrefix' => '',
                        'pConnect' => TRUE,
                        'DBDebug'  => TRUE,
                        'cacheOn'  => FALSE,
                        'cacheDir' => '',
                        'charset'  => 'utf8',
                        'DBCollat' => 'utf8_general_ci',
                        'swapPre'  => '',
                        'encrypt'  => FALSE,
                        'compress' => FALSE,
                        'strictOn' => FALSE
                ]
        ];

Bạn có thể chỉ định bao nhiêu chuyển đổi dự phòng tùy thích

Bạn có thể tùy chọn lưu trữ nhiều bộ giá trị kết nối. Ví dụ: nếu bạn chạy nhiều môi trường (phát triển, sản xuất, thử nghiệm, v.v. ) trong một lần cài đặt, bạn có thể thiết lập nhóm kết nối cho từng nhóm, sau đó chuyển đổi giữa các nhóm nếu cần. Ví dụ: để thiết lập môi trường “thử nghiệm”, bạn sẽ làm điều này

public $test = [
        'DSN'      => '',
        'hostname' => 'localhost',
        'username' => 'root',
        'password' => '',
        'database' => 'database_name',
        'DBDriver' => 'MySQLi',
        'DBPrefix' => '',
        'pConnect' => TRUE,
        'DBDebug'  => TRUE,
        'cacheOn'  => FALSE,
        'cacheDir' => '',
        'charset'  => 'utf8',
        'DBCollat' => 'utf8_general_ci',
        'swapPre'  => '',
        'compress' => FALSE,
        'encrypt'  => FALSE,
        'strictOn' => FALSE,
        'failover' => []
);

Sau đó, để yêu cầu hệ thống sử dụng nhóm đó trên toàn cầu, bạn sẽ đặt biến này nằm trong tệp cấu hình

$defaultGroup = 'test';

Ghi chú

Tên 'kiểm tra' là tùy ý. Nó có thể là bất cứ điều gì bạn muốn. Theo mặc định, chúng tôi đã sử dụng từ “mặc định” cho kết nối chính, nhưng nó cũng có thể được đổi tên thành một thứ phù hợp hơn với dự án của bạn

Bạn có thể sửa đổi tệp cấu hình để phát hiện môi trường và tự động cập nhật giá trị defaultGroup thành giá trị chính xác bằng cách thêm logic cần thiết trong hàm tạo của lớp

class Database
{
    public $development = [...];
    public $test        = [...];
    public $production  = [...];

        public function __construct()
        {
                $this->defaultGroup = ENVIRONMENT;
        }
}

Cấu hình với. tập tin env

Bạn cũng có thể lưu các giá trị cấu hình của mình trong tệp

// PDO
$default['DSN'] = 'pgsql:host=localhost;port=5432;dbname=database_name';

// Oracle
$default['DSN'] = '//localhost/XE';
0 với cài đặt cơ sở dữ liệu của máy chủ hiện tại. Bạn chỉ cần nhập các giá trị thay đổi so với giá trị trong cài đặt cấu hình của nhóm mặc định. Các giá trị phải là tên theo định dạng này, trong đó
// PDO
$default['DSN'] = 'pgsql:host=localhost;port=5432;dbname=database_name';

// Oracle
$default['DSN'] = '//localhost/XE';
1 là tên nhóm

________số 8_______

Như với tất cả khác

Giải thích các giá trị

Tên ConfigDescriptiondsnChuỗi kết nối DSN (chuỗi cấu hình tất cả trong một). hostnameTên máy chủ của máy chủ cơ sở dữ liệu của bạn. Thường thì đây là 'máy chủ cục bộ'. usernameTên người dùng được sử dụng để kết nối với cơ sở dữ liệu. password Mật ​​khẩu dùng để kết nối với cơ sở dữ liệu. cơ sở dữ liệuTên của cơ sở dữ liệu bạn muốn kết nối với. DBDriverLoại cơ sở dữ liệu. ví dụ. MySQLi, Postgre, v.v. Trường hợp phải khớp với tên trình điều khiểnDBPrefixMột tiền tố bảng tùy chọn sẽ được thêm vào tên bảng khi chạy truy vấn Trình tạo truy vấn. Điều này cho phép nhiều bản cài đặt CodeIgniter chia sẻ một cơ sở dữ liệu. pConnectTRUE/FALSE (boolean) - Có sử dụng kết nối liên tục hay không. DBDebugTRUE/FALSE (boolean) - Có hiển thị lỗi cơ sở dữ liệu hay không. cacheOnTRUE/FALSE (boolean) - Bộ nhớ đệm truy vấn cơ sở dữ liệu có được bật hay không. cacheDirĐường dẫn máy chủ tuyệt đối đến thư mục bộ đệm truy vấn cơ sở dữ liệu của bạn. bộ ký tự Bộ ký tự được sử dụng để giao tiếp với cơ sở dữ liệu. DBCollat

Đối chiếu ký tự được sử dụng trong giao tiếp với cơ sở dữ liệu

Ghi chú

Chỉ được sử dụng trong trình điều khiển 'MySQLi'

swapPreA tiền tố bảng mặc định nên được hoán đổi với dbprefix. Điều này hữu ích cho các ứng dụng phân tán nơi bạn có thể chạy các truy vấn được viết thủ công và cần tiền tố để người dùng cuối vẫn có thể tùy chỉnh. lược đồ Lược đồ cơ sở dữ liệu, mặc định là 'công khai'. Được sử dụng bởi trình điều khiển PostgreSQL và ODBC. mã hóa

Có hay không sử dụng kết nối được mã hóa

  • Trình điều khiển 'sqlsrv' và 'pdo/sqlsrv' chấp nhận TRUE/FALSE
  • Trình điều khiển 'MySQLi' và 'pdo/mysql' chấp nhận một mảng với các tùy chọn sau
    • ‘ssl_key’ - Đường dẫn đến tệp khóa riêng
    • ‘ssl_cert’ - Đường dẫn đến tệp chứng chỉ khóa công khai
    • ‘ssl_ca’ - Đường dẫn đến tệp tổ chức phát hành chứng chỉ
    • ‘ssl_capath’ - Đường dẫn đến thư mục chứa chứng chỉ CA đáng tin cậy ở định dạng PEM
    • ‘ssl_cipher’ - Danh sách mật mã được phép sử dụng để mã hóa, được phân tách bằng dấu hai chấm (‘. ’)
    • ‘ssl_verify’ - TRUE/FALSE;
nénCó sử dụng tính năng nén máy khách hay không (chỉ dành cho MySQL). nghiêm ngặtOnTRUE/FALSE (boolean) - Có bắt buộc các kết nối “Chế độ nghiêm ngặt” hay không, tốt cho việc đảm bảo SQL nghiêm ngặt trong khi phát triển ứng dụng. Hải cảng

Số cổng cơ sở dữ liệu. Để sử dụng giá trị này, bạn phải thêm một dòng vào mảng cấu hình cơ sở dữ liệu

$default['port'] = 5432;

Ghi chú

Tùy thuộc vào nền tảng cơ sở dữ liệu bạn đang sử dụng (MySQL, PostgreSQL, v.v. ) không phải tất cả các giá trị sẽ cần thiết. Ví dụ: khi sử dụng SQLite, bạn sẽ không cần cung cấp tên người dùng hoặc mật khẩu và tên cơ sở dữ liệu sẽ là đường dẫn đến tệp cơ sở dữ liệu của bạn. Thông tin trên giả định rằng bạn đang sử dụng MySQL

Làm cách nào để kết nối cơ sở dữ liệu với CodeIgniter?

Bạn có thể kết nối với cơ sở dữ liệu của mình bằng cách thêm dòng mã này vào bất kỳ chức năng nào cần thiết hoặc trong hàm tạo của lớp để làm cho cơ sở dữ liệu có sẵn trên toàn cầu trong lớp đó. ? php $db = \Config\Database. kết nối();

Làm cách nào để sử dụng hai cơ sở dữ liệu trong CodeIgniter?

Nếu bạn cần kết nối đồng thời với nhiều cơ sở dữ liệu, bạn có thể thực hiện như sau. $DB1 = $this->load->database('group_one', TRUE);

Cấu hình DB là gì?

Bạn sử dụng ứng dụng Cấu hình cơ sở dữ liệu để tạo hoặc thay đổi các đối tượng và thuộc tính cũng như để tùy chỉnh cơ sở dữ liệu . Một đối tượng là một thực thể phần mềm độc lập bao gồm cả dữ liệu và chức năng để thao tác dữ liệu.

Làm cách nào để lấy dữ liệu từ cơ sở dữ liệu trong CodeIgniter 4?

Mục lục .
Cài đặt Codeigniter 4
Tạo điều kiện cho lỗi Codeigniter
Kết nối cơ sở dữ liệu
Tạo mô hình
Tạo bộ điều khiển người dùng
Xác định tuyến đường
Tìm nạp bản ghi từ cơ sở dữ liệu với AJAX
Bắt đầu ứng dụng