PDO PHP mới

Nếu bạn là người mới bắt đầu phát triển trang web, thì việc biết cách sử dụng tập lệnh PHP để kết nối với MySQL có thể hữu ích. Bằng cách này, bạn có thể sửa đổi, xem hoặc quản lý các bảng được tạo trong cơ sở dữ liệu MySQL. Bài viết này sẽ chỉ cho bạn những cách dễ nhất để làm điều đó, hãy bắt đầu

PDO PHP mới

 

  • Tạo cơ sở dữ liệu MySQL (Tùy chọn)
  • Hai cách một tập lệnh PHP có thể kết nối với MySQL
  • Sử dụng MySQLi để kết nối tập lệnh PHP với MySQL
    • Giải thích mã MySQLi
  • Sử dụng PDO để kết nối tập lệnh PHP với MySQL
    • Giải thích mã PDO
  • Kiểm tra kết nối và khắc phục các lỗi thường gặp
    • Lỗi mật khẩu không chính xác
    • Không thể kết nối đến máy chủ MySQL

Tạo cơ sở dữ liệu MySQL (Tùy chọn)

Bước này là bắt buộc nếu bạn không có cơ sở dữ liệu MySQL. Nếu bạn là người dùng Hostinger, bạn có thể dễ dàng tạo một cái mới thông qua hPanel của Hostinger chỉ với vài bước

  1. Tìm menu Cơ sở dữ liệu MySQL trong phần Cơ sở dữ liệu
  2. Điền vào các trường cần thiết và nhấn Tạo

PDO PHP mới

Để biết hướng dẫn về cách tạo cơ sở dữ liệu MySQL, hãy xem hướng dẫn cPanel của chúng tôi. Tuy nhiên, hãy nhớ rằng đây là những cơ sở dữ liệu trống và bạn sẽ cần điền dữ liệu trước khi có thể thao tác với nó

Quan trọng. Viết thông tin đăng nhập của cơ sở dữ liệu MySQL bạn vừa tạo cho bước tiếp theo. Đừng quên ghi nhớ tên người dùng cơ sở dữ liệu và mật khẩu tên người dùng

Hai cách một tập lệnh PHP có thể kết nối với MySQL

Có hai phương pháp để kết nối với cơ sở dữ liệu MySQL bằng PHP. MySQLi và PDO

MySQLi là viết tắt của MySQL được cải thiện. Nó là một tiện ích mở rộng dành riêng cho MySQL, bổ sung các tính năng mới cho giao diện của cơ sở dữ liệu MySQL. MySQLi là cả thủ tục và hướng đối tượng, trước đây là thuộc tính được kế thừa từ phiên bản MySQL cũ hơn

MySQL ban đầu chia nhỏ một tác vụ thành các quy trình tuyến tính, từng bước, điều này gây khó khăn cho việc sửa đổi vì bạn phải chỉnh sửa mã từ đầu. Trong khi đó, MySQLi xem dữ liệu là một tập hợp các đối tượng có thể hoán đổi cho nhau về chức năng, cho phép người dùng thêm bớt dữ liệu một cách dễ dàng

PDO là viết tắt của Đối tượng dữ liệu PHP. Không giống như MySQLi, PDO chỉ hướng đối tượng và hỗ trợ một số loại cơ sở dữ liệu khác nhau sử dụng PHP, chẳng hạn như MySQL, MSSQL, Informix và PostgreSQL

Quan trọng. Các chức năng mysql_ ban đầu không được dùng nữa và không nên được sử dụng vì chúng không an toàn và không còn được duy trì hoặc phát triển

Một trong những tính năng quan trọng nhất mà cả hai đều hỗ trợ là các câu lệnh đã chuẩn bị, giúp tăng tốc thời gian cần thiết để MySQL thực hiện cùng một truy vấn nhiều lần. Nó cũng được sử dụng để ngăn chặn các cuộc tấn công SQL injection khi thực hiện các thay đổi đối với cơ sở dữ liệu hoặc chèn đầu vào do người dùng cung cấp vào một truy vấn hoặc câu lệnh cơ sở dữ liệu

Cho dù bạn sử dụng phương pháp nào, bạn sẽ cần thông tin chính xác để có thể kết nối với cơ sở dữ liệu MySQL mà bạn đã tạo. Đây là nơi các chi tiết cơ sở dữ liệu MySQL mà bạn đã lưu trước đó trở nên hữu ích

Bạn cũng cần tên máy chủ hoặc tên máy chủ chính xác để cấu hình. Hostinger sử dụng “localhost” làm tên máy chủ của máy chủ MySQL. Nói chung, đây là tên mà bạn sẽ muốn sử dụng nếu bạn đã tải tập lệnh PHP của mình lên cùng một máy chủ với cơ sở dữ liệu

Ngược lại, nếu bạn đang kết nối với cơ sở dữ liệu từ một vị trí ở xa (ví dụ: máy tính của bạn), bạn sẽ phải sử dụng địa chỉ IP của máy chủ MySQL. Để biết thêm chi tiết, hãy liên hệ với nhà cung cấp dịch vụ lưu trữ của bạn để họ có thể cung cấp cho bạn thông tin chính xác về những gì sẽ sử dụng làm tên máy chủ

Sử dụng MySQLi để kết nối tập lệnh PHP với MySQL

Thực hiện theo các bước sau để sử dụng MySQLi để kết nối tập lệnh PHP với MySQL

  1. Đi tới Trình quản lý tệp -> public_html

PDO PHP mới

  1. Tạo một tệp mới bằng cách nhấp vào biểu tượng từ menu phía trên

PDO PHP mới

  1. Lưu tệp dưới dạng kết nối cơ sở dữ liệu. php. Bạn có thể thay thế tên bằng bất cứ thứ gì bạn thích, chỉ cần đảm bảo rằng nó đang sử dụng php làm phần mở rộng

PDO PHP mới

  1. Nhấp đúp để mở tệp và sao chép-dán các dòng mã sau vào tệp. Thay đổi bốn giá trị đầu tiên bên dưới

Giải thích mã MySQLi

Phương thức chính được sử dụng trong tập lệnh này là mysqli_connect(). Đây là một hàm PHP nội bộ để thiết lập kết nối mới với máy chủ MySQL

Khi bắt đầu mã của chúng tôi, chúng tôi thấy một vài khai báo biến và giá trị được gán cho các biến đó. Thông thường, chúng tôi cần bốn trong số chúng để thiết lập kết nối cơ sở dữ liệu phù hợp. $servername, $database, $username và $password. Trong mã, chúng tôi đặt chi tiết cơ sở dữ liệu của mình làm giá trị cho các biến đó, để chúng có thể được chuyển vào hàm

Nếu kết nối không thành công, hàm die() sẽ được thực thi. Điều này về cơ bản giết tập lệnh của chúng tôi và cung cấp cho chúng tôi thông báo lỗi kết nối mà chúng tôi đã đặt. Theo mặc định, lỗi kết nối MySQL sẽ cho biết Kết nối không thành công, sau đó là thông báo lỗi chính xác mô tả sự cố

Mặt khác, nếu kết nối MySQL thành công, thay vào đó, mã sẽ in Đã kết nối thành công

Phần cuối cùng của mã là mysqli_close, phần này sẽ đơn giản đóng kết nối với cơ sở dữ liệu theo cách thủ công. Nếu không được chỉ định, các kết nối MySQL sẽ tự đóng sau khi tập lệnh kết thúc

Sử dụng PDO để kết nối tập lệnh PHP với MySQL

Phương pháp khác sử dụng tập lệnh PHP để kết nối với MySQL là sử dụng PDO. Điều này tương tự như phương pháp trước, nhưng với một chút thay đổi

  1. Trong public_html, tạo một tệp có tên pdoconfig. php và chèn đoạn mã sau. Như mọi khi, đừng quên thay thế các giá trị giữ chỗ bằng thông tin cơ sở dữ liệu của bạn. Lưu và Đóng nó sau khi bạn hoàn tất
  1. Tạo một tệp khác có tên là databaseconnect. php trong cùng thư mục, nhưng với đoạn mã sau. Nếu bạn đã đặt tên khác cho tệp trước đó, hãy đảm bảo thay đổi giá trị của require_once
getMessage());
}

Giải thích mã PDO

Kết nối cơ sở dữ liệu PDO yêu cầu bạn tạo một đối tượng PDO mới với Tên nguồn dữ liệu (DSN), Tên người dùng và Mật khẩu

DSN xác định loại cơ sở dữ liệu, tên của cơ sở dữ liệu và bất kỳ thông tin nào khác liên quan đến cơ sở dữ liệu nếu được yêu cầu. Đây là các biến và giá trị chúng tôi đã nêu bên trong dbconfig. php tệp, được tham chiếu một lần bởi dòng require_once trong databaseconnect. php

Ở phần sau, bạn sẽ tìm thấy lệnh try…catch. mã số. Điều này có nghĩa là tập lệnh sẽ cố gắng kết nối MySQL bằng mã được cung cấp, nhưng nếu có sự cố, mã trong phần bắt sẽ chạy. Bạn có thể sử dụng khối bắt để hiển thị thông báo lỗi kết nối hoặc chạy mã thay thế nếu khối thử không thành công

Nếu kết nối thành công sẽ in ra thông báo “Connected to $dbname at $host Successfully. ” Tuy nhiên, nếu nỗ lực không thành công, mã bắt sẽ hiển thị một thông báo lỗi đơn giản và tắt tập lệnh

Không giống như khi sử dụng MySQLi, sau khi sử dụng xong tập lệnh PDO, bạn không cần phải đóng kết nối theo cách thủ công. Nó tự động đóng khi đối tượng PDO bị hủy hoặc tập lệnh của bạn kết thúc

Kiểm tra kết nối và khắc phục các lỗi thường gặp

Để kiểm tra xem kết nối có thành công hay không, hãy truy cập tên miền của bạn như vậy. tên miền/kết nối cơ sở dữ liệu của bạn. php. Nếu bạn đặt tên tệp PHP khác, hãy đảm bảo thay đổi nó cho phù hợp

Bạn sẽ thấy “Đã kết nối thành công” hoặc các biến thể của thông báo này nếu mọi thứ đang chạy mà không gặp sự cố nào

Bây giờ nếu kết nối không thành công, bạn sẽ thấy một cái gì đó khác. Các thông báo lỗi trông hơi khác đối với MySQLi và PDO

Lỗi mật khẩu không chính xác

Lỗi này xảy ra nếu chúng tôi thay đổi mật khẩu hoặc bất kỳ thông tin xác thực nào trong mã PHP (nhưng không thay đổi nó trong cơ sở dữ liệu thực tế)

Trong trường hợp bạn thấy thông báo “Truy cập bị từ chối” hoặc “Không thể kết nối với cơ sở dữ liệu” kèm theo “(sử dụng mật khẩu. YES)” khi kết thúc, điều đầu tiên cần làm là kiểm tra chi tiết cơ sở dữ liệu. Có thể có một lỗi đánh máy hoặc một phần bị thiếu

Không thể kết nối đến máy chủ MySQL

Nếu bạn nhận được "Không thể kết nối với máy chủ MySQL trên 'máy chủ' (110)" trong MySQLi, điều đó có nghĩa là tập lệnh không nhận được phản hồi từ máy chủ. Điều này xảy ra khi chúng tôi đặt “máy chủ” thay vì “localhost” làm $servername và tên này không được nhận dạng

Thông báo lỗi trong PDO sẽ giống như “Kết nối không thành công. SQLSTATE[Hy000] [2002]”, theo sau là các chi tiết khác cho biết không tìm thấy máy chủ My SQL. Nhưng cách khắc phục cũng giống như trên

Và tất nhiên, điều quan trọng là luôn nhớ một quy tắc vàng để khắc phục lỗi. kiểm tra nhật ký lỗi trang web của bạn

Nhật ký có thể được tìm thấy trong cùng một thư mục mà tập lệnh đang chạy. Ví dụ: nếu chúng tôi đang chạy tập lệnh trong public_html, chúng tôi sẽ tìm thấy error_log trong cùng một thư mục

Phần kết luận

Trong hướng dẫn này, chúng ta đã học những kiến ​​thức rất cơ bản về cách kết nối tập lệnh PHP với cơ sở dữ liệu MySQL bằng cách sử dụng MySQLi và Đối tượng dữ liệu PHP (PDO)

Hy vọng, hướng dẫn này hữu ích cho những người mới bắt đầu phát triển web. Rốt cuộc, kết nối với cơ sở dữ liệu là bước đầu tiên, quan trọng nhất khi làm việc với các tập lệnh và cấu hình nâng cao hơn

Hãy cho chúng tôi biết trong các nhận xét bên dưới nếu bạn gặp phải bất kỳ vấn đề nào khi làm theo hướng dẫn này

PDO PHP mới

Tác giả

Domantas G

Domantas dẫn dắt các nhóm nội dung và SEO về phía trước với những ý tưởng mới và phương pháp tiếp cận vượt trội. Được trang bị kiến ​​thức sâu rộng về SEO và tiếp thị, anh đặt mục tiêu quảng bá Hostinger đến mọi nơi trên thế giới. Trong thời gian rảnh rỗi, Domantas thích trau dồi kỹ năng phát triển web của mình và đi du lịch đến những nơi xa lạ

PDO mới trong PHP là gì?

PDO là gì? . PDO không phải là một cơ sở dữ liệu trừu tượng; . data-access abstraction layer, which means you can issue queries and fetch data using the same functions regardless of which database you're using. PDO isn't a database abstraction; it doesn't rewrite SQL or imitates features that aren't accessible.

PHP PDO có bị phản đối không?

PDO ¶ PDO. Chế độ tìm nạp FETCH_SERIALIZE không được dùng nữa .

Làm cách nào để tạo PDO trong PHP?

$pdo = PDO mới($dsn, $user, $passwd); Một đối tượng PDO mới được tạo. Chúng tôi chuyển cho hàm tạo tên nguồn dữ liệu, tên người dùng và mật khẩu. Lớp PDO đại diện cho kết nối giữa PHP và máy chủ cơ sở dữ liệu.

Liệu PHP 5. 4 hỗ trợ PDO?

PDO sẽ không chạy kể từ khi nâng cấp PHP lên 5. 4 .