Ý nghĩa của PDO trong PHP là gì?

PHP PDO là lớp truy cập cơ sở dữ liệu cung cấp giao diện thống nhất để làm việc với nhiều cơ sở dữ liệu

PDO đơn giản hóa các hoạt động cơ sở dữ liệu phổ biến bao gồm

  • Tạo kết nối cơ sở dữ liệu
  • Thực hiện các truy vấn bằng cách sử dụng câu lệnh đã chuẩn bị
  • Gọi thủ tục lưu sẵn
  • Thực hiện giao dịch
  • Và xử lý lỗi

PDO cho phép bạn làm việc với bất kỳ cơ sở dữ liệu nào có sẵn trình điều khiển PDO. PDO dựa trên các trình điều khiển dành riêng cho cơ sở dữ liệu, e. g. , PDO_MYSQL cho MySQL, PDO_PGSQL cho PostgreSQL, PDO_OCI cho cơ sở dữ liệu Oracle, v.v. , để hoạt động đúng. Đây là danh sách đầy đủ các trình điều khiển PDO

Do đó, để sử dụng PDO cho một cơ sở dữ liệu cụ thể, bạn cần có sẵn trình điều khiển cơ sở dữ liệu tương ứng

Sơ đồ sau đây minh họa cách thức hoạt động của PDO

PDO giúp dễ dàng triển khai các ứng dụng PHP vì nó không yêu cầu bạn phải đưa bất kỳ tệp script nào vào ứng dụng của mình theo cách thủ công như các thư viện khác

Phần 1. Bắt đầu nhanh PDO

Phần này chỉ cho bạn từng bước cách kết nối với một số hệ thống quản lý cơ sở dữ liệu quan hệ, bao gồm MySQL và PostgreSQL

  • Kết nối với MySQL – chỉ cho bạn từng bước về cách kết nối với cơ sở dữ liệu MySQL
  • Kết nối với PostgreSQL – chỉ cho bạn cách kết nối với cơ sở dữ liệu PostgreSQL

Phần 2. Tạo cơ sở dữ liệu mẫu

  • Tạo cơ sở dữ liệu mẫu – chỉ cho bạn cách tạo cơ sở dữ liệu mẫu và bảng trong máy chủ cơ sở dữ liệu MySQL và tập lệnh có thể tái sử dụng để kết nối với cơ sở dữ liệu
  • Tạo bảng mới – tìm hiểu cách tạo bảng mới trong cơ sở dữ liệu MySQL từ PHP bằng PDO

Phần 3. báo cáo chuẩn bị

  • Câu lệnh soạn sẵn – giới thiệu với các bạn câu lệnh soạn sẵn
  • Thực thi toán tử LIKE – chỉ cho bạn cách sử dụng câu lệnh chuẩn bị để thực hiện truy vấn có chứa toán tử LIKE
  • Thực thi toán tử IN – tìm hiểu cách sử dụng câu lệnh đã chuẩn bị sẵn để thực hiện truy vấn có chứa toán tử IN

phần 4. CRUD trong PDO

Phần này minh họa thao tác cơ sở dữ liệu phổ biến, bao gồm tạo (chèn), đọc (chọn), cập nhật và xóa dữ liệu bằng PDO. Các hoạt động cơ bản này thường được gọi là CRUD

  • Chèn dữ liệu vào bảng – hướng dẫn bạn các bước chèn dữ liệu vào bảng của cơ sở dữ liệu
  • Cập nhật dữ liệu trong bảng – chỉ cho bạn cách cập nhật dữ liệu trong bảng từ PHP bằng PDO
  • Chọn dữ liệu từ bảng – hướng dẫn cách truy vấn dữ liệu từ bảng
  • Xóa dữ liệu khỏi bảng – chỉ cho bạn cách xóa dữ liệu trong bảng cơ sở dữ liệu bằng API PDO

Phần 5. Đang tìm nạp dữ liệu

Phần này thảo luận chi tiết về các phương thức và chế độ tìm nạp* khác nhau

  • fetch() – tìm nạp một hàng từ tập kết quả được liên kết với đối tượng PDOStatement
  • fetchAll() – lấy tất cả các hàng từ một đối tượng tập hợp kết quả vào một mảng
  • fetchcolumn() – tìm nạp một cột từ hàng tiếp theo trong tập kết quả
  • fetchObject() – tìm nạp hàng tiếp theo từ một tập hợp kết quả và trả về nó dưới dạng một đối tượng của một lớp
  • PDO. FETCH_KEY_PAIR – chọn kết quả hai cột trong một mảng trong đó cột đầu tiên là khóa và cột thứ hai là giá trị
  • PDO. FETCH_GROUP – nhóm các hàng theo các giá trị duy nhất của cột đầu tiên trong tập kết quả
  • PDO. FETCH_CLASS – chỉ cho bạn cách trả về một thể hiện của một lớp có các thuộc tính ánh xạ tới các giá trị cột từ cơ sở dữ liệu

Phần 6. Gọi thủ tục lưu trữ

Phần này cho bạn thấy một số ví dụ về xử lý các thủ tục được lưu trữ, bao gồm

  • Gọi thủ tục lưu trữ MySQL từ PHP bằng PDO – chỉ cho bạn cách gọi thủ tục lưu sẵn MySQL từ PHP bằng PDO

Phần 6. Quản lý giao dịch trong PDO

PDO cung cấp cho bạn một số phương thức tiện dụng, bao gồm

query("SELECT VERSION()");

$version = $stm->fetch();

echo $version[0] . PHP_EOL;
9,
$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
0 và
$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
1 để xử lý các giao dịch một cách hiệu quả. Phần này cung cấp cho bạn một số ví dụ về xử lý các giao dịch trong ứng dụng web của bạn

Đối tượng dữ liệu PHP (PDO) xác định giao diện nhẹ để truy cập cơ sở dữ liệu trong PHP. Nó cung cấp một lớp trừu tượng truy cập dữ liệu để làm việc với cơ sở dữ liệu trong PHP. Nó xác định API nhất quán để làm việc với các hệ thống cơ sở dữ liệu khác nhau

Các lớp PDO PHP

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
3 đại diện cho kết nối giữa PHP và máy chủ cơ sở dữ liệu.
$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
4 đại diện cho một câu lệnh đã chuẩn bị và sau khi câu lệnh được thực thi, một tập hợp kết quả được liên kết.
$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
5 đại diện cho lỗi do PDO đưa ra

Trong hướng dẫn này, chúng tôi làm việc với cơ sở dữ liệu MySQL

DROP TABLE IF EXISTS countries;
CREATE TABLE countries(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255), population INT);

INSERT INTO countries(name, population) VALUES('China', 1382050000);
INSERT INTO countries(name, population) VALUES('India', 1313210000);
INSERT INTO countries(name, population) VALUES('USA', 324666000);
INSERT INTO countries(name, population) VALUES('Indonesia', 260581000);
INSERT INTO countries(name, population) VALUES('Brazil', 207221000);
INSERT INTO countries(name, population) VALUES('Pakistan', 196626000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Bangladesh', 162099000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Russia', 146838000);
INSERT INTO countries(name, population) VALUES('Japan', 126830000);

Các lệnh SQL này tạo một bảng

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
6

Truy vấn PHP PDO

PDO

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
7 thực thi một câu lệnh SQL trong một lệnh gọi hàm duy nhất, trả về tập kết quả (nếu có) được trả về bởi câu lệnh

query("SELECT VERSION()");

$version = $stm->fetch();

echo $version[0] . PHP_EOL;

Ví dụ trả về phiên bản MySQL

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";

Các biến này được sử dụng để tạo chuỗi kết nối đến cơ sở dữ liệu.

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
8 là Tên nguồn dữ liệu, chứa thông tin cần thiết để kết nối với cơ sở dữ liệu

$pdo = new PDO($dsn, $user, $passwd);

Một đối tượng

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
3 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
$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
3 đại diện cho kết nối giữa PHP và máy chủ cơ sở dữ liệu

Quảng cáo
$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
2

Phương thức

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
7 thực thi một câu lệnh SQL trong một lần gọi hàm. Nó trả về tập kết quả

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
4

Phương thức

$pdo = new PDO($dsn, $user, $passwd);
2 của câu lệnh PDO tìm nạp hàng tiếp theo từ một tập hợp kết quả. Trong trường hợp của chúng tôi, nó là một phiên bản của MySQL

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
6

$pdo = new PDO($dsn, $user, $passwd);
3 là một mảng;

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
8

Đây là đầu ra

PDO

$pdo = new PDO($dsn, $user, $passwd);
4 thực thi một câu lệnh SQL và trả về số hàng bị ảnh hưởng

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
0

Ví dụ mã xóa ba hàng. Nó in số lượng hàng bị ảnh hưởng

DROP TABLE IF EXISTS countries;
CREATE TABLE countries(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255), population INT);

INSERT INTO countries(name, population) VALUES('China', 1382050000);
INSERT INTO countries(name, population) VALUES('India', 1313210000);
INSERT INTO countries(name, population) VALUES('USA', 324666000);
INSERT INTO countries(name, population) VALUES('Indonesia', 260581000);
INSERT INTO countries(name, population) VALUES('Brazil', 207221000);
INSERT INTO countries(name, population) VALUES('Pakistan', 196626000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Bangladesh', 162099000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Russia', 146838000);
INSERT INTO countries(name, population) VALUES('Japan', 126830000);
0

Trong câu lệnh SQL này, chúng tôi xóa các hàng có id 1, 2 và 3. Số hàng đã xóa được lưu trữ trong biến

$pdo = new PDO($dsn, $user, $passwd);
5

DROP TABLE IF EXISTS countries;
CREATE TABLE countries(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255), population INT);

INSERT INTO countries(name, population) VALUES('China', 1382050000);
INSERT INTO countries(name, population) VALUES('India', 1313210000);
INSERT INTO countries(name, population) VALUES('USA', 324666000);
INSERT INTO countries(name, population) VALUES('Indonesia', 260581000);
INSERT INTO countries(name, population) VALUES('Brazil', 207221000);
INSERT INTO countries(name, population) VALUES('Pakistan', 196626000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Bangladesh', 162099000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Russia', 146838000);
INSERT INTO countries(name, population) VALUES('Japan', 126830000);
1

Chúng tôi in số hàng đã xóa

Kiểu tìm nạp PHP PDO

Tham số kiểu tìm nạp kiểm soát cách hàng tiếp theo sẽ được trả lại cho người gọi. Chẳng hạn,

$pdo = new PDO($dsn, $user, $passwd);
6 trả về một mảng được lập chỉ mục theo tên cột,
$pdo = new PDO($dsn, $user, $passwd);
7 trả về một mảng được lập chỉ mục theo số cột và
$pdo = new PDO($dsn, $user, $passwd);
8 trả về một mảng được lập chỉ mục theo cả tên cột và số cột được lập chỉ mục. Kiểu tìm nạp mặc định là
$pdo = new PDO($dsn, $user, $passwd);
8

DROP TABLE IF EXISTS countries;
CREATE TABLE countries(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255), population INT);

INSERT INTO countries(name, population) VALUES('China', 1382050000);
INSERT INTO countries(name, population) VALUES('India', 1313210000);
INSERT INTO countries(name, population) VALUES('USA', 324666000);
INSERT INTO countries(name, population) VALUES('Indonesia', 260581000);
INSERT INTO countries(name, population) VALUES('Brazil', 207221000);
INSERT INTO countries(name, population) VALUES('Pakistan', 196626000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Bangladesh', 162099000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Russia', 146838000);
INSERT INTO countries(name, population) VALUES('Japan', 126830000);
2

Trong ví dụ mã này, chúng tôi lấy dữ liệu trong một mảng được lập chỉ mục

DROP TABLE IF EXISTS countries;
CREATE TABLE countries(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255), population INT);

INSERT INTO countries(name, population) VALUES('China', 1382050000);
INSERT INTO countries(name, population) VALUES('India', 1313210000);
INSERT INTO countries(name, population) VALUES('USA', 324666000);
INSERT INTO countries(name, population) VALUES('Indonesia', 260581000);
INSERT INTO countries(name, population) VALUES('Brazil', 207221000);
INSERT INTO countries(name, population) VALUES('Pakistan', 196626000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Bangladesh', 162099000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Russia', 146838000);
INSERT INTO countries(name, population) VALUES('Japan', 126830000);
3

Chúng tôi chọn tất cả dữ liệu từ bảng

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
6

DROP TABLE IF EXISTS countries;
CREATE TABLE countries(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255), population INT);

INSERT INTO countries(name, population) VALUES('China', 1382050000);
INSERT INTO countries(name, population) VALUES('India', 1313210000);
INSERT INTO countries(name, population) VALUES('USA', 324666000);
INSERT INTO countries(name, population) VALUES('Indonesia', 260581000);
INSERT INTO countries(name, population) VALUES('Brazil', 207221000);
INSERT INTO countries(name, population) VALUES('Pakistan', 196626000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Bangladesh', 162099000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Russia', 146838000);
INSERT INTO countries(name, population) VALUES('Japan', 126830000);
4

Chúng tôi chuyển kiểu

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
21 cho phương thức
$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
22

DROP TABLE IF EXISTS countries;
CREATE TABLE countries(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255), population INT);

INSERT INTO countries(name, population) VALUES('China', 1382050000);
INSERT INTO countries(name, population) VALUES('India', 1313210000);
INSERT INTO countries(name, population) VALUES('USA', 324666000);
INSERT INTO countries(name, population) VALUES('Indonesia', 260581000);
INSERT INTO countries(name, population) VALUES('Brazil', 207221000);
INSERT INTO countries(name, population) VALUES('Pakistan', 196626000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Bangladesh', 162099000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Russia', 146838000);
INSERT INTO countries(name, population) VALUES('Japan', 126830000);
5

Chúng tôi đi qua mảng

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
23 và in các trường. Các trường được truy cập thông qua các chỉ mục mảng

Quảng cáo
DROP TABLE IF EXISTS countries;
CREATE TABLE countries(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255), population INT);

INSERT INTO countries(name, population) VALUES('China', 1382050000);
INSERT INTO countries(name, population) VALUES('India', 1313210000);
INSERT INTO countries(name, population) VALUES('USA', 324666000);
INSERT INTO countries(name, population) VALUES('Indonesia', 260581000);
INSERT INTO countries(name, population) VALUES('Brazil', 207221000);
INSERT INTO countries(name, population) VALUES('Pakistan', 196626000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Bangladesh', 162099000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Russia', 146838000);
INSERT INTO countries(name, population) VALUES('Japan', 126830000);
6

Trong ví dụ này, chúng tôi tìm nạp dữ liệu dưới dạng một mảng kết hợp

DROP TABLE IF EXISTS countries;
CREATE TABLE countries(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255), population INT);

INSERT INTO countries(name, population) VALUES('China', 1382050000);
INSERT INTO countries(name, population) VALUES('India', 1313210000);
INSERT INTO countries(name, population) VALUES('USA', 324666000);
INSERT INTO countries(name, population) VALUES('Indonesia', 260581000);
INSERT INTO countries(name, population) VALUES('Brazil', 207221000);
INSERT INTO countries(name, population) VALUES('Pakistan', 196626000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Bangladesh', 162099000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Russia', 146838000);
INSERT INTO countries(name, population) VALUES('Japan', 126830000);
7

Trong phương pháp

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
22, chúng tôi sử dụng kiểu
$pdo = new PDO($dsn, $user, $passwd);
6

Liên kết tham số PHP PDO

Các câu lệnh SQL thường được xây dựng động. Người dùng cung cấp một số đầu vào và đầu vào này được tích hợp vào câu lệnh. Chúng ta phải thận trọng mỗi khi xử lý thông tin đầu vào từ người dùng. Nó có một số ý nghĩa bảo mật nghiêm trọng. Cách được khuyến nghị để xây dựng động các câu lệnh SQL là sử dụng liên kết tham số

PDO chứa phương thức

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
26 và
$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
27 để tạo các truy vấn được tham số hóa

PDO cho phép liên kết dữ liệu với dấu chấm hỏi hoặc trình giữ chỗ được đặt tên

DROP TABLE IF EXISTS countries;
CREATE TABLE countries(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255), population INT);

INSERT INTO countries(name, population) VALUES('China', 1382050000);
INSERT INTO countries(name, population) VALUES('India', 1313210000);
INSERT INTO countries(name, population) VALUES('USA', 324666000);
INSERT INTO countries(name, population) VALUES('Indonesia', 260581000);
INSERT INTO countries(name, population) VALUES('Brazil', 207221000);
INSERT INTO countries(name, population) VALUES('Pakistan', 196626000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Bangladesh', 162099000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Russia', 146838000);
INSERT INTO countries(name, population) VALUES('Japan', 126830000);
8

Trong ví dụ này, chúng tôi sử dụng

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
27 để tạo truy vấn được tham số hóa. Chúng tôi sử dụng trình giữ chỗ dấu chấm hỏi

DROP TABLE IF EXISTS countries;
CREATE TABLE countries(id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255), population INT);

INSERT INTO countries(name, population) VALUES('China', 1382050000);
INSERT INTO countries(name, population) VALUES('India', 1313210000);
INSERT INTO countries(name, population) VALUES('USA', 324666000);
INSERT INTO countries(name, population) VALUES('Indonesia', 260581000);
INSERT INTO countries(name, population) VALUES('Brazil', 207221000);
INSERT INTO countries(name, population) VALUES('Pakistan', 196626000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Bangladesh', 162099000);
INSERT INTO countries(name, population) VALUES('Nigeria', 186988000);
INSERT INTO countries(name, population) VALUES('Russia', 146838000);
INSERT INTO countries(name, population) VALUES('Japan', 126830000);
9

Giả sử đầu vào này đến từ một người dùng

query("SELECT VERSION()");

$version = $stm->fetch();

echo $version[0] . PHP_EOL;
0

Câu lệnh select tìm nạp một hàng cụ thể từ bảng. Chúng tôi liên kết giá trị với

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
27 với một trình giữ chỗ có dấu chấm hỏi

Trong trường hợp thứ hai, chúng tôi sử dụng

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
26

query("SELECT VERSION()");

$version = $stm->fetch();

echo $version[0] . PHP_EOL;
1

Ví dụ chọn và in một hàng cụ thể

query("SELECT VERSION()");

$version = $stm->fetch();

echo $version[0] . PHP_EOL;
2

Lần này chúng tôi sử dụng trình giữ chỗ có tên (______141) và

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
26

PHP PDO Id hàng được chèn lần cuối

Phương thức PDO

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
43 trả về id hàng được chèn cuối cùng

Quảng cáo
query("SELECT VERSION()");

$version = $stm->fetch();

echo $version[0] . PHP_EOL;
3

Trong ví dụ này, chúng tôi tạo một bảng mới. Sau khi bảng được tạo, chúng tôi tìm ra Id được chèn cuối cùng với

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
43

query("SELECT VERSION()");

$version = $stm->fetch();

echo $version[0] . PHP_EOL;
4

Đây là đầu ra

query("SELECT VERSION()");

$version = $stm->fetch();

echo $version[0] . PHP_EOL;
5

Chúng tôi xác minh dữ liệu

Giao dịch là một đơn vị nguyên tử của hoạt động cơ sở dữ liệu đối với dữ liệu trong một hoặc nhiều cơ sở dữ liệu. Tác động của tất cả các câu lệnh SQL trong một giao dịch có thể được cam kết hoàn toàn với cơ sở dữ liệu hoặc tất cả được khôi phục

PDO

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
45 bắt đầu một giao dịch mới. PDO
$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
46 cam kết giao dịch. Và PDO
$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
47 khôi phục giao dịch

Quảng cáo
query("SELECT VERSION()");

$version = $stm->fetch();

echo $version[0] . PHP_EOL;
6

Trong ví dụ này, chúng tôi thêm hai quốc gia mới vào bảng cơ sở dữ liệu. Các câu lệnh chèn được đặt trong một giao dịch. cả hai phần chèn đều được thực thi hoặc không

query("SELECT VERSION()");

$version = $stm->fetch();

echo $version[0] . PHP_EOL;
7

Trong trường hợp có ngoại lệ, chúng tôi sẽ khôi phục giao dịch trở lại. không có dữ liệu được ghi vào cơ sở dữ liệu. Chúng tôi ném ngoại lệ để việc xử lý ngoại lệ tiếp tục theo cách thông thường

PHP PDO nhận siêu dữ liệu

Siêu dữ liệu là thông tin về dữ liệu trong cơ sở dữ liệu. Siêu dữ liệu chứa thông tin về các bảng và cột mà chúng tôi lưu trữ dữ liệu trong đó. Số hàng mà câu lệnh SQL ảnh hưởng là siêu dữ liệu. Số lượng hàng và cột được trả về trong tập hợp kết quả cũng là siêu dữ liệu

query("SELECT VERSION()");

$version = $stm->fetch();

echo $version[0] . PHP_EOL;
8

Trong ví dụ này, chúng ta in số cột trong tập kết quả bằng phương thức

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
48

Phương thức

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
49 truy xuất thuộc tính kết nối cơ sở dữ liệu

kết nối_thuộc tính. php

query("SELECT VERSION()");

$version = $stm->fetch();

echo $version[0] . PHP_EOL;
9

Trong ví dụ này, chúng tôi lấy tên trình điều khiển, phiên bản máy chủ và chế độ tự động gửi bằng phương thức

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
49

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
0

Đây là một đầu ra mẫu

quảng cáo

Trong ví dụ sau, chúng tôi in siêu dữ liệu cột. Siêu dữ liệu cột được truy xuất bằng phương pháp

$dsn = "mysql:host=localhost;dbname=mydb";
$user = "user12";
$passwd = "12user";
61

Tại sao nên sử dụng PHP PDO?

Phần mở rộng Đối tượng dữ liệu PHP ( PDO ) xác định giao diện nhẹ, nhất quán để truy cập cơ sở dữ liệu trong PHP . Mỗi trình điều khiển cơ sở dữ liệu triển khai giao diện PDO có thể hiển thị các tính năng dành riêng cho cơ sở dữ liệu dưới dạng các chức năng mở rộng thông thường.

PDO dạng đầy đủ là gì?

PDO bằng tiếng Anh Anh . Dạng xuất xứ được bảo hộ . một chỉ dẫn địa lý được xác định theo luật của Liên minh Châu Âu để bảo vệ các sản phẩm nông nghiệp và thực phẩm trong khu vực. Từ điển tiếng Anh Collins. Bản quyền © Nhà xuất bản HarperCollins.

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

Như đã nêu trước đó, cả PDO và MySQLi đều cực kỳ giống nhau, nhưng có một số khác biệt nhỏ về cú pháp. MySQLi tuân theo quy ước solid_case truyền thống của PHP, trong khi PDO sử dụng camelCase . Ngoài ra, các phương thức của MySQLi được sử dụng làm thuộc tính đối tượng, trong khi PDO sử dụng cú pháp truyền thống cho các hàm.

PDO so với MySQLi là gì?

PDO sẽ hoạt động trên 12 hệ thống cơ sở dữ liệu khác nhau, trong khi MySQLi sẽ chỉ hoạt động với cơ sở dữ liệu MySQL . Vì vậy, nếu bạn phải chuyển dự án của mình sang sử dụng cơ sở dữ liệu khác, PDO sẽ giúp quá trình này trở nên dễ dàng. Bạn chỉ phải thay đổi chuỗi kết nối và một vài truy vấn.