Làm cách nào để bắt đầu một truy vấn mới trong mysql?

Phần mềm MySQL Workbench là một chương trình do Oracle phát triển cho phép bạn quản trị cơ sở dữ liệu từ xa từ máy tính của mình

Bạn có thể tải xuống chương trình MySQL Workbench từ trang web chính thức của MySQL. Sau khi bạn tải chương trình về làm theo các bước cài đặt để cài đặt thành công phần mềm vào máy của bạn

Trước khi bạn có thể kết nối với cơ sở dữ liệu MySQL của mình, bạn phải cho phép IP của mình truy cập vào máy chủ. Bạn có thể tìm thêm thông tin về cách làm điều đó trong hướng dẫn của chúng tôi

Thiết lập kết nối với tài khoản của bạn

Khi bạn đã sẵn sàng với việc cài đặt phần mềm và bạn đã cho phép truy cập vào tài khoản của mình từ IP của mình, hãy mở chương trình MySQL Workbench. Bạn sẽ thấy một trang chào mừng với thông tin chung về phần mềm và các liên kết đến các tài nguyên khác nhau

Bạn sẽ cần thêm một kết nối mới, có thể thực hiện việc này bằng cách nhấp vào nút + bên cạnh dòng Kết nối MySQL

Thao tác này sẽ mở ra một cửa sổ mới có tên là Thiết lập kết nối mới nơi bạn cần điền thông tin kết nối thích hợp cho tài khoản của mình

  • Tên kết nối – đặt tên mong muốn cho kết nối;
  • Phương thức kết nối – để tùy chọn mặc định – Tiêu chuẩn [TCP/IP];
  • Tên máy chủ – ở đây đặt IP của trang web của bạn;
  • Cổng – để mặc định – 3306;
  • Tên người dùng – tên người dùng của bạn;
  • Lược đồ mặc định – để trống

Bạn có thể sử dụng nút Kiểm tra kết nối để kiểm tra xem cài đặt bạn đã sử dụng có đúng không

Khi kiểm tra kết nối, bạn sẽ được yêu cầu nhập mật khẩu. Cung cấp mật khẩu của bạn và nhấp vào OK để xác nhận

Nếu kết nối được thiết lập đúng cách, bạn sẽ thấy thông báo thành công

Lưu kết nối bằng cách nhấp vào OK. Sau đó, trên cửa sổ chính của phần mềm MySQL Workbench, bạn sẽ thấy một kết nối mới hiển thị bên dưới dòng MySQL Connections. Nhấp đúp vào nó để thiết lập kết nối với tài khoản lưu trữ của bạn và bắt đầu quản lý cơ sở dữ liệu của bạn

Cách sao lưu và khôi phục cơ sở dữ liệu

Khi bạn mở kết nối với tài khoản của mình, bạn sẽ thấy một cửa sổ mới có sẵn một số công cụ để bạn sử dụng. Bạn có thể sử dụng các công cụ này để sao lưu và khôi phục cơ sở dữ liệu

Để sao lưu cơ sở dữ liệu từ tài khoản của bạn vào máy cục bộ, bạn có thể sử dụng công cụ Xuất dữ liệu từ cột bên trái

Khi bạn truy cập vào công cụ, bạn sẽ thấy một danh sách tất cả các cơ sở dữ liệu được liên kết với tài khoản của bạn. Sử dụng hộp kiểm bên cạnh mỗi cơ sở dữ liệu để chọn cơ sở dữ liệu bạn muốn sao lưu. Sau đó, đặt đường dẫn mà cơ sở dữ liệu sẽ được xuất trong trường Xuất sang thư mục dự án kết xuất, sẽ xuất từng bảng riêng biệt trong tệp riêng của nó hoặc chọn tùy chọn Xuất sang tệp tự chứa để sao lưu toàn bộ cơ sở dữ liệu trong một tệp duy nhất. Khi đã sẵn sàng, nhấp vào Bắt đầu xuất để bắt đầu quá trình xuất

Quá trình xuất sẽ bắt đầu và bạn có thể theo dõi tiến trình từ cửa sổ mở ra

Khôi phục cơ sở dữ liệu là một quy trình tương tự và bạn có thể thực hiện quy trình này thông qua công cụ Nhập dữ liệu. Chọn đường dẫn mà các bảng sẽ được nhập trong trường Nhập từ thư mục dự án kết xuất hoặc sử dụng tùy chọn Nhập từ tệp tự chứa nếu bạn có. bản sao sql của cơ sở dữ liệu

Cách truy vấn cơ sở dữ liệu

Bạn cũng có thể sử dụng phần mềm MySQL Workbench để thực hiện các truy vấn MySQL đối với cơ sở dữ liệu trên tài khoản của mình. Để làm điều đó, trước tiên hãy chọn cơ sở dữ liệu mong muốn từ menu cột bên trái bằng cách nhấp đúp vào cơ sở dữ liệu đó

Sau đó, nhập truy vấn MySQL mà bạn muốn chạy vào trường văn bản ở giữa cửa sổ chương trình và sử dụng nút tia chớp màu vàng phía trên trường văn bản đó để chạy truy vấn

PHP cung cấp ba API khác nhau để kết nối với MySQL. Đây là các tiện ích mở rộng

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
8 [đã bị xóa kể từ PHP 7],
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
9 và
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0

Các hàm

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
1 từng rất phổ biến, nhưng việc sử dụng chúng không còn được khuyến khích nữa. Nhóm tài liệu đang thảo luận về tình hình bảo mật cơ sở dữ liệu và giáo dục người dùng tránh xa tiện ích mở rộng ext/mysql thường được sử dụng là một phần của vấn đề này [kiểm tra php. nội bộ. không dùng ext/mysql]

Và nhóm nhà phát triển PHP sau này đã đưa ra quyết định tạo ra lỗi

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
2 khi người dùng kết nối với MySQL, cho dù thông qua
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
3,
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
4 hay chức năng kết nối ngầm định được tích hợp trong
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
5

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
5 chính thức không được dùng nữa kể từ PHP 5. 5 và đã bị xóa kể từ PHP 7

Xem Hộp màu đỏ?

Khi bạn vào bất kỳ trang hướng dẫn sử dụng chức năng

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
1 nào, bạn sẽ thấy một hộp màu đỏ, giải thích rằng nó không nên được sử dụng nữa

Di chuyển khỏi

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
5 không chỉ về bảo mật mà còn về việc có quyền truy cập vào tất cả các tính năng của cơ sở dữ liệu MySQL

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
5 được xây dựng cho MySQL 3. 23 và chỉ có rất ít bổ sung kể từ đó trong khi hầu hết vẫn giữ khả năng tương thích với phiên bản cũ này, điều này khiến mã khó bảo trì hơn một chút. Các tính năng còn thiếu không được
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
5 hỗ trợ bao gồm. [từ hướng dẫn sử dụng PHP]

Lý do không sử dụng chức năng

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
1

  • Không được phát triển tích cực
  • Đã xóa kể từ PHP 7
  • Thiếu giao diện OO
  • Không hỗ trợ truy vấn không chặn, không đồng bộ
  • Không hỗ trợ các câu lệnh đã chuẩn bị sẵn hoặc các truy vấn được tham số hóa
  • Không hỗ trợ các thủ tục được lưu trữ
  • Không hỗ trợ nhiều câu lệnh
  • Không hỗ trợ giao dịch
  • Không hỗ trợ tất cả các chức năng trong MySQL 5. 1

Điểm trên được trích dẫn từ câu trả lời của Quentin

Việc thiếu hỗ trợ cho các câu lệnh đã chuẩn bị là đặc biệt quan trọng vì chúng cung cấp một phương pháp thoát và trích dẫn dữ liệu ngoài rõ ràng hơn, ít lỗi hơn so với việc thoát nó theo cách thủ công bằng một lệnh gọi hàm riêng biệt

Xem phần so sánh các phần mở rộng SQL

Loại bỏ các cảnh báo không dùng nữa

Trong khi mã đang được chuyển đổi thành

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
42/
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0, lỗi
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
2 có thể được loại bỏ bằng cách đặt
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
45 trong php. ini để loại trừ
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
46

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
9

Lưu ý rằng điều này cũng sẽ ẩn các cảnh báo không dùng nữa, tuy nhiên, có thể dành cho những thứ khác ngoài MySQL. []

Bài viết PDO vs. MySQLi. Bạn nên sử dụng cái nào?

Và một cách tốt hơn là

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0, và tôi hiện đang viết một hướng dẫn đơn giản về
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0

Hướng dẫn PDO đơn giản và ngắn gọn

Q. câu hỏi đầu tiên trong đầu tôi là. `PDO` là gì?

A. “PDO – Đối tượng dữ liệu PHP – là lớp truy cập cơ sở dữ liệu cung cấp một phương thức truy cập thống nhất vào nhiều cơ sở dữ liệu. ”

Kết nối với MySQL

Với hàm

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
1 hoặc chúng ta có thể nói theo cách cũ [không dùng nữa trong PHP 5. 5 trở lên]

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
3

Với

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0. Tất cả những gì bạn cần làm là tạo một đối tượng
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0 mới. Hàm tạo chấp nhận các tham số để chỉ định nguồn cơ sở dữ liệu Hàm tạo của
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0 chủ yếu nhận bốn tham số là
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
73 [tên nguồn dữ liệu] và tùy chọn
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
74,
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
75

Ở đây tôi nghĩ bạn đã quen thuộc với tất cả ngoại trừ ________ 273; .

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
73 về cơ bản là một chuỗi các tùy chọn cho biết
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0 nên sử dụng trình điều khiển nào và chi tiết kết nối. Để tham khảo thêm, hãy kiểm tra PDO MySQL DSN

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];

Ghi chú. bạn cũng có thể sử dụng

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
50, nhưng đôi khi nó gây ra lỗi, vì vậy tốt hơn là sử dụng
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
51

Nếu có bất kỳ lỗi kết nối nào, nó sẽ ném một đối tượng

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
52 có thể bị bắt để xử lý tiếp
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
53

Đọc tốt. Kết nối và quản lý kết nối ¶

Bạn cũng có thể chuyển một số tùy chọn trình điều khiển dưới dạng một mảng cho tham số thứ tư. Tôi khuyên bạn nên chuyển tham số đặt

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0 vào chế độ ngoại lệ. Bởi vì một số trình điều khiển
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0 không hỗ trợ các câu lệnh chuẩn bị sẵn, nên
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0 thực hiện mô phỏng chuẩn bị. Nó cũng cho phép bạn kích hoạt mô phỏng này theo cách thủ công. Để sử dụng các câu lệnh được chuẩn bị sẵn phía máy chủ gốc, bạn nên đặt nó một cách rõ ràng
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
57

Cách khác là tắt chế độ mô phỏng chuẩn bị được bật trong trình điều khiển

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
58 theo mặc định, nhưng nên tắt chế độ mô phỏng chuẩn bị để sử dụng
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0 một cách an toàn

Sau này tôi sẽ giải thích tại sao nên tắt mô phỏng chuẩn bị. Để tìm lý do xin vui lòng kiểm tra bài viết này

Nó chỉ có thể sử dụng được nếu bạn đang sử dụng phiên bản cũ của

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
58 mà tôi không khuyên dùng

Dưới đây là một ví dụ về cách bạn có thể làm điều đó

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];

Chúng tôi có thể đặt thuộc tính sau khi xây dựng PDO không?

Có, chúng tôi cũng có thể đặt một số thuộc tính sau khi xây dựng PDO bằng phương pháp

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
71

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
4

Xử lý lỗi

Xử lý lỗi dễ dàng hơn nhiều trong

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0 so với
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
1

Một thực tế phổ biến khi sử dụng

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
1 là

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
7

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
75 không phải là cách tốt để xử lý lỗi vì chúng tôi không thể xử lý sự việc trong
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
76. Nó sẽ đột ngột kết thúc tập lệnh và sau đó lặp lại lỗi trên màn hình mà bạn thường KHÔNG muốn hiển thị cho người dùng cuối của mình và để những tin tặc khốn kiếp phát hiện ra lược đồ của bạn. Ngoài ra, các giá trị trả về của các hàm
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
1 thường có thể được sử dụng cùng với mysql_error[] để xử lý lỗi

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0 đưa ra giải pháp tốt hơn. ngoại lệ. Bất cứ điều gì chúng tôi làm với
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0 nên được gói trong một khối
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
80-
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
81. Chúng tôi có thể buộc
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0 vào một trong ba chế độ lỗi bằng cách đặt thuộc tính chế độ lỗi. Ba chế độ xử lý lỗi bên dưới

  • $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    83. Nó chỉ đặt mã lỗi và hoạt động khá giống với
    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    1, nơi bạn phải kiểm tra từng kết quả và sau đó xem
    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    85 để biết chi tiết lỗi
  • $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    86 Tăng
    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    87. [Cảnh báo thời gian chạy [lỗi không nghiêm trọng]. Việc thực thi tập lệnh không bị dừng. ]
  • $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    88. Ném ngoại lệ. Nó đại diện cho một lỗi được đưa ra bởi PDO. Bạn không nên ném một
    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    52 từ mã của riêng bạn. Xem Ngoại lệ để biết thêm thông tin về ngoại lệ trong PHP. Nó hoạt động rất giống với
    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    80, khi nó không bị bắt. Nhưng không giống như
    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    81,
    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    52 có thể được bắt và xử lý một cách khéo léo nếu bạn chọn làm như vậy

Đọc tốt

Thích

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
5

Và bạn có thể bọc nó trong ________ 580-________ 581, như bên dưới

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
7

Bạn không phải xử lý với

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
80-
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
81 ngay bây giờ. Bạn có thể bắt nó bất cứ lúc nào thích hợp, nhưng tôi thực sự khuyên bạn nên sử dụng
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
80-
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
81. Ngoài ra, có thể hợp lý hơn khi bắt nó ở bên ngoài chức năng gọi nội dung
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
8

Ngoài ra, bạn có thể xử lý bằng

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
81 hoặc chúng tôi có thể nói như
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
1, nhưng nó sẽ thực sự đa dạng. Bạn có thể ẩn các thông báo lỗi nguy hiểm trong quá trình sản xuất bằng cách bật
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
302 và chỉ cần đọc nhật ký lỗi của mình

Bây giờ, sau khi đọc tất cả những điều trên, có lẽ bạn đang nghĩ. cái quái gì thế khi tôi chỉ muốn bắt đầu học các câu lệnh

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
303, ________ 2304, ________ 2305 hoặc _______ 2306 đơn giản?

Chọn dữ liệu

Vì vậy, những gì bạn đang làm trong

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
1 là

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
8

Bây giờ trong

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0, bạn có thể làm điều này như sau.

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
30

Hoặc

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
31

Ghi chú. Nếu bạn đang sử dụng phương thức như bên dưới [

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
309], phương thức này trả về một đối tượng
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
310. Vì vậy, nếu bạn muốn lấy kết quả, hãy sử dụng nó như trên

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
32

Trong Dữ liệu PDO, nó được lấy thông qua

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
311, một phương thức xử lý câu lệnh của bạn. Trước khi gọi tìm nạp, cách tiếp cận tốt nhất là cho PDO biết bạn muốn dữ liệu được tìm nạp như thế nào. Trong phần dưới đây tôi đang giải thích điều này

Chế độ tìm nạp

Lưu ý việc sử dụng

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
312 trong mã
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
313 và
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
314 ở trên. Điều này yêu cầu
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0 trả về các hàng dưới dạng một mảng kết hợp với các tên trường là các khóa. Có nhiều chế độ tìm nạp khác mà tôi sẽ giải thích từng cái một

Trước hết, tôi giải thích cách chọn chế độ tìm nạp

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
33

Ở trên, tôi đã sử dụng

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
313. Bạn cũng có thể dùng

Bây giờ tôi đến chế độ tìm nạp

  • $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    312. trả về một mảng được lập chỉ mục theo tên cột như được trả về trong tập hợp kết quả của bạn
  • $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    318 [mặc định]. trả về một mảng được lập chỉ mục bởi cả tên cột và số cột được lập chỉ mục 0 như được trả về trong tập hợp kết quả của bạn

Có nhiều sự lựa chọn hơn. Đọc tất cả về chúng trong

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
310 Tìm nạp tài liệu

Lấy số lượng hàng

Thay vì sử dụng

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
320 để lấy số lượng hàng được trả về, bạn có thể lấy
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
310 và thực hiện
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
322, chẳng hạn như

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
34

Lấy ID được chèn lần cuối

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
35

Chèn và cập nhật hoặc xóa câu lệnh

Những gì chúng tôi đang làm trong chức năng

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
1 là

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
8
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
324 thực thi một câu lệnh SQL và trả về số hàng bị ảnh hưởng

Chèn và xóa sẽ được đề cập sau

Phương pháp trên chỉ hữu ích khi bạn không sử dụng biến trong truy vấn. Nhưng khi bạn cần sử dụng một biến trong truy vấn, đừng bao giờ thử làm như trên và ở đó đối với câu lệnh đã chuẩn bị hoặc câu lệnh được tham số hóa là

báo cáo chuẩn bị

Q. Tuyên bố chuẩn bị là gì và tại sao tôi cần chúng?
A. Câu lệnh đã chuẩn bị là câu lệnh SQL được biên dịch sẵn có thể được thực thi nhiều lần bằng cách chỉ gửi dữ liệu đến máy chủ.

Quy trình làm việc điển hình của việc sử dụng một câu lệnh đã chuẩn bị như sau [trích dẫn từ Wikipedia ba điểm 3]

  1. Chuẩn bị. Mẫu câu lệnh được tạo bởi ứng dụng và được gửi đến hệ thống quản lý cơ sở dữ liệu [DBMS]. Một số giá trị không được chỉ định, được gọi là tham số, trình giữ chỗ hoặc biến liên kết [được gắn nhãn

    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    325 bên dưới]

    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    326

  2. DBMS phân tích cú pháp, biên dịch và thực hiện tối ưu hóa truy vấn trên mẫu câu lệnh và lưu trữ kết quả mà không cần thực thi nó

  3. Hành hình. Sau đó, ứng dụng cung cấp [hoặc liên kết] các giá trị cho các tham số và DBMS thực thi câu lệnh [có thể trả về kết quả]. Ứng dụng có thể thực thi câu lệnh bao nhiêu lần tùy thích với các giá trị khác nhau. Trong ví dụ này, nó có thể cung cấp 'Bread' cho tham số đầu tiên và
    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    327 cho tham số thứ hai

Bạn có thể sử dụng câu lệnh đã chuẩn bị sẵn bằng cách bao gồm các trình giữ chỗ trong SQL của mình. Về cơ bản, có ba cái không có trình giữ chỗ [đừng thử điều này với biến ở trên], một cái có trình giữ chỗ không tên và một cái có trình giữ chỗ được đặt tên

Q. Vậy bây giờ, trình giữ chỗ được đặt tên là gì và tôi sử dụng chúng như thế nào?
A. Trình giữ chỗ được đặt tên. Sử dụng tên mô tả trước dấu hai chấm, thay vì dấu chấm hỏi. Chúng tôi không quan tâm đến vị trí/thứ tự giá trị trong tên giữ chỗ.

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
38

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
328

Bạn cũng có thể liên kết bằng cách sử dụng một mảng thực thi

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
39

Một tính năng thú vị khác dành cho những người bạn của

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
329 là các trình giữ chỗ được đặt tên có khả năng chèn các đối tượng trực tiếp vào cơ sở dữ liệu của bạn, giả sử các thuộc tính khớp với các trường được đặt tên. Ví dụ

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
0

Q. Vậy bây giờ, trình giữ chỗ chưa được đặt tên là gì và tôi sử dụng chúng như thế nào?
A. Hãy lấy một ví dụ.

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
1

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
2

Ở phần trên, bạn có thể thấy những

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
325 thay vì tên như trong trình giữ chỗ tên. Bây giờ trong ví dụ đầu tiên, chúng tôi gán các biến cho các trình giữ chỗ khác nhau [
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
331]. Sau đó, chúng tôi gán giá trị cho các trình giữ chỗ đó và thực hiện câu lệnh. Trong ví dụ thứ hai, phần tử mảng đầu tiên chuyển đến
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
325 đầu tiên và phần tử thứ hai đến
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
325 thứ hai

GHI CHÚ. Trong các trình giữ chỗ không tên, chúng ta phải quan tâm đến thứ tự thích hợp của các phần tử trong mảng mà chúng ta đang chuyển đến phương thức

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
334

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
303,
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
304,
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
305,
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
306 truy vấn đã chuẩn bị

  1. $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    303

    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
    
    3
  2. $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    304

    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
    
    4
  3. $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    306

    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
    
    5
  4. $db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
                  'username', 
                  'password',
                  array[PDO::ATTR_EMULATE_PREPARES => false,
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
    
    305

    $db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
    
    6

GHI CHÚ

Tuy nhiên

$db = new PDO['mysql:host=localhost;dbname=testdb;charset=UTF-8', 
              'username', 
              'password',
              array[PDO::ATTR_EMULATE_PREPARES => false,
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]];
0 và/hoặc
$db = new PDO['mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'];
42 không hoàn toàn an toàn. Kiểm tra câu trả lời Các câu lệnh được chuẩn bị PDO có đủ để ngăn chặn SQL injection không? . Ngoài ra, tôi đang trích dẫn một phần từ câu trả lời của anh ấy

Làm cách nào để thêm truy vấn mới trong MySQL?

Cú pháp cơ bản .
INSERT INTO `table_name` là lệnh yêu cầu máy chủ MySQL thêm một hàng mới vào bảng có tên `table_name. `
[column_1,column_2,…] chỉ định các cột sẽ được cập nhật trong hàng MySQL mới
VALUES [value_1,value_2,…] chỉ định các giá trị sẽ được thêm vào hàng mới

Làm cách nào để viết truy vấn trong dòng lệnh MySQL?

Bạn cũng có thể truy cập Máy khách dòng lệnh MySQL từ Dấu nhắc lệnh. .
Mở dấu nhắc lệnh
Điều hướng đến thư mục bin. Ví dụ. CDC. \Tệp chương trình\MySQL\MySQL Server 8. 0\bin
Chạy lệnh mysql -u root -p
Nhập mật khẩu

Chủ Đề