sách gpt4 ai đã đi

Tôi có cần tạo kết nối php mysql trong mọi chức năng sử dụng cơ sở dữ liệu không?

In lại Tác giả: IT Prince Thời gian cập nhật: 2023-10-29 00:38:14 hai mươi bốn 4
mua khóa gpt4 Nike

Tôi đang tạo một API RESTful của PHP và hiện tại tôi có thông tin kết nối cơ sở dữ liệu trong mỗi hàm.

//Kết nối tới cơ sở dữ liệu
$hostname=máy chủ;
$username=tên người dùng;
$password=mật khẩu;
$dbname=tên cơ sở dữ liệu;

mysql_connect($hostname, $username, $password) OR DIE('Không thể kết nối tới cơ sở dữ liệu! Vui lòng thử lại sau.');
mysql_select_db($têndb);
mysql_query($sqlApiAccess) hoặc die('Lỗi, truy vấn chèn không thành công');

Cách tốt nhất để thực hiện việc này là gì? Mỗi file php có thể có một kết nối cơ sở dữ liệu không? Hay tôi cần phải làm điều này cho mọi chức năng sử dụng cơ sở dữ liệu?

1 Câu trả lời

Để tránh việc tạo kết nối cơ sở dữ liệu mới mỗi lần, chúng ta có thể sử dụng Mẫu thiết kế Singleton -

Chúng ta cần một lớp cơ sở dữ liệu - để xử lý các kết nối cơ sở dữ liệu -

Cơ sở dữ liệu.class.php

        lớp Cơ sở dữ liệu
{
// Lưu trữ phiên bản duy nhất của Cơ sở dữ liệu
riêng tư tĩnh $m_pInstance;

riêng tư $db_host='localhost';
riêng tư $db_user = 'root';
riêng tư $db_pass = '';
riêng tư $db_name = 'tên cơ sở dữ liệu';

// Hàm tạo riêng tư để giới hạn việc khởi tạo đối tượng trong phạm vi lớp
hàm riêng __construct()
{
mysql_connect($this->db_host,$this->db_user,$this->db_pass);
mysql_select_db($this->tên_db);
}

// Phương thức Getter để tạo/trả về thể hiện duy nhất của lớp này
hàm tĩnh công khai getInstance()
{
nếu (!self::$m_pInstance)
{
self::$m_pInstance = Cơ sở dữ liệu mới();
}
trả về self::$m_pInstance;
}

hàm public query($query)
{
trả về mysql_query($query);
}

}
?>

Chúng ta có thể gọi nó từ các tập tin khác -

khác.php

       bao gồm 'singleton.php';
$pDatabase = Cơ sở dữ liệu::getInstance();

$result = $pDatabase->query('...');
?>

Về php - tôi có cần tạo kết nối php mysql trong mọi hàm sử dụng cơ sở dữ liệu không? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/10208691/

hai mươi bốn 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com