Lỗi nghiêm trọng: lỗi chưa được phát hiện: không tìm thấy lớp mysqli_connect trong

Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu về lỗi không bắt được “Uncaught error. Gọi hàm không xác định mysql_connect[]”

Lỗi này xảy ra khi chúng tôi cố gắng sử dụng các hàm “mysql_connect[]” của php5 trong php7

PHP Lỗi nghiêm trọng. Lỗi chưa xử lý. Gọi đến hàm không xác định mysql_connect[] lỗi được tăng vì các hàm mysql_* đã bị xóa hoàn toàn khỏi PHP 7, trước đây nó không được dùng trong PHP 5. 5, nhưng bây giờ nó đã bị xóa hoàn toàn

Chức năng MySQL cũ hơn bị xóa vì những lý do sau

  1. Không làm việc trên khái niệm Hướng đối tượng
  2. Không hỗ trợ các giao dịch và báo cáo đã chuẩn bị
  3. không an toàn

Cách khắc phục lỗi Undefined Function Mysql_connect[]

Có bốn phương pháp để sửa lỗi hàm Mysql_connect[] không xác định

  • Sử dụng MySQLi hoặc PDO
  • Kết nối với Mysql với đối tượng Pdo khá đơn giản
  • Kết nối với MySQL bằng đối tượng kết nối MySqli
  • Quay trở lại PHP 5 cũ hơn, cập nhật mã của bạn lên mysqli hoặc PDO rồi nâng cấp lên PHP7

1. Sử dụng MySQLi hoặc PDO

mysqli_connect[]

Thay vì sử dụng “mysql_connect[]” chúng ta nên sử dụng “mysqli_connect[]” trong php7 để tránh lỗi này

Thí dụ. $mysql = new mysqli["localhost","root","password",''DB_name"];

PDO [đối tượng cơ sở dữ liệu php]

Thí dụ. $pdo = PDO mới['mysql. host=localhost;dbname=database_name ', 'tên người dùng', 'mật khẩu'];

// pdo yêu cầu cơ sở dữ liệu hợp lệ để thiết lập kết nối. Nếu cơ sở dữ liệu không được chỉ định thì nó sẽ đưa ra một ngoại lệ

2. Kết nối với Mysql với đối tượng Pdo khá đơn giản

$user = 'root'; // Mysql
User$password = ''; // Mysql Password
$server = 'localhost'; // Mysql Host
$database = 'my_database'; // Mysql Databse
// PDO Connection string
$pdo = new PDO["mysql:host=$server;dbname=$database", $user, $password];

3. Kết nối với MySQL bằng đối tượng kết nối MySqli

$con = mysqli_connect['localhost', 'username', 'password', 'database'];

4. Quay trở lại PHP 5 cũ hơn, cập nhật mã của bạn lên mysqli hoặc PDO rồi nâng cấp lên PHP7

Thực hành tốt nhất

Sử dụng trình bao bọc MySQLi và trình ánh xạ đối tượng với các câu lệnh đã chuẩn bị

Thí dụ. Người dùng PHP-MySQLi-Database-Class https. //github. com/ThingEngineer/PHP-MySQLi-Database-Class

Bằng cách sử dụng MySQLi với câu lệnh chuẩn bị sẽ bảo mật kết nối cơ sở dữ liệu của bạn  & trong tương lai, nếu cần nâng cấp Cơ sở dữ liệu của bạn lên một số phiên bản khác, bạn sẽ không phải cập nhật tất cả chuỗi kết nối mysql của mình trong tất cả các trang

Một lỗi phổ biến xảy ra, đặc biệt đối với những người mới bắt đầu phát triển SQL là một lỗi nghiêm trọng khi cố gắng tham chiếu đến lớp MySQLi, chẳng hạn như

Fatal error: Class 'MySQLi' not found [[URL]] on line [X]

Vấn đề

Vấn đề đang xảy ra ở đây là lớp, trong trường hợp này là 'MySQLi' không thể được khởi tạo. Hãy tạm quên rằng đây là sự cố MySQLi và xem xét rằng đây thực sự là sự cố mà bạn có thể gặp phải với bất kỳ sự phát triển lập trình hướng đối tượng nào. Vấn đề cơ bản ở đây là bạn đang cố tải một lớp không có hoặc không thể tìm thấy

Khởi tạo lớp MySQLi

Bạn có thể sẽ sử dụng một đoạn mã đơn giản để khởi tạo lớp MySQLi của mình. Cái gì đó như

$mysqli = new MySQLi[$db_server, $db_user, $db_password, $db_name];
  • $mysqli – đây là đối tượng mà bạn muốn lưu trữ tham chiếu đến phiên bản MySQLi mới
  • $db_server – địa chỉ máy chủ cơ sở dữ liệu của bạn
  • $db_user – tên người dùng để sử dụng với cơ sở dữ liệu của bạn [toàn máy chủ hoặc cơ sở dữ liệu cụ thể]
  • $db_password – mật khẩu cho người dùng cơ sở dữ liệu được lưu trữ trong $db_user
  • $db_name – bảng cơ sở dữ liệu mà bạn muốn truy cập

Luôn luôn đáng để kiểm tra kỹ cả cấu trúc mã khởi tạo của bạn để đảm bảo không có lỗi đánh máy hoặc thiếu tham số vì đây là nguyên nhân phổ biến. Ngoài ra, hãy kiểm tra kỹ tất cả các chi tiết bạn đang cung cấp trong thông số của mình

Kiểm tra cài đặt MySQLi của bạn

Một lý do phổ biến cho lỗi trên xảy ra chỉ đơn giản là quên cài đặt MySQLi. Điều này có thể dễ dàng được thực hiện cục bộ trong quá trình phát triển bằng cách truy cập trang web PHP để cài đặt MySQLi. Trên các máy Windows, bạn có thể thấy rằng bạn không [hoặc chưa] phải thực hiện việc này theo cách thủ công nếu bạn đã sử dụng trình cài đặt nhị phân. Tiện ích mở rộng MySQLi được bật theo mặc định cho PHP phiên bản 5. 3. 0 trở đi

Nếu bạn đã sử dụng trình cài đặt nhị phân mà nó vẫn không hoạt động, hãy thử cài đặt lại PHP để xem nó có giải quyết được sự cố không vì có thể đã xảy ra lỗi cài đặt hoặc cấu hình không hoàn tất chính xác

Nếu bạn đang chạy mã của mình trên AWS, bạn có thể sử dụng một lệnh chẳng hạn như

sudo yum install php71-mysqli

Điều này sẽ kích hoạt cài đặt MySQLi

Để cài đặt trình điều khiển gốc trên Linux, bạn sẽ cần một cái gì đó như

sudo apt-get install php-mysqlnd

Những điều cần kiểm tra lại khi khởi tạo MySQLi Class

Nếu bạn vẫn gặp sự cố khi khởi tạo lớp MySQLi sau khi kiểm tra cài đặt, bạn có thể thử các cách giải quyết vấn đề phổ biến sau

Hàm mysqli_connect[] là gì?

Hàm mysqli_connect[] cố gắng mở một kết nối đến Máy chủ MySQL chạy trên máy chủ có thể là tên máy chủ hoặc địa chỉ IP. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed.

Sự khác biệt giữa Mysql_connect và mysqli_connect là gì?

Mysqli_connect đấu với Mysql_connect? . mysqli có nhiều tính năng hơn và là phiên bản mới nhất để sử dụng. bạn cũng có thể muốn xem xét PDO, đây là cách kết nối OO với cơ sở dữ liệu. mysqli_* functions are used with a mysqli_connect resource and mysql_* functions are used with a mysql_connect resource. mysqli has more features and is the more current version to use. you may also want to look into PDO which is an OO way of connecting to databases.

Chủ Đề