Đây là một Lớp trừu tượng SQL đơn giản tương thích với PHP7+ và PHP 8. 0 cung cấp tương tác _secure_ đơn giản và với cơ sở dữ liệu của bạn bằng cách sử dụng các hàm mysqli_* ở cốt lõi của nó. Điều này là hoàn hảo cho các ứng dụng quy mô nhỏ như công việc định kỳ, chiến dịch canvas facebook hoặc khung hoặc trang web vi mô Bạn cũng có thể sử dụng. vòng. -lớp "Bản ghi hoạt động đơn giản", nó dựa trên lớp db này và thêm một số cú pháp OOP. Nhưng vui lòng thông báo cho bạn về "Bản ghi hoạt động" so với "Trình ánh xạ dữ liệu" trước khi bạn sử dụng Nhận "MySQLi đơn giản"Bạn có thể tải xuống từ đây hoặc yêu cầu sử dụng trình soạn nhạc {
"require": {
"voku/simple-mysqli": "8.*"
}
}
Cài đặt thông qua "yêu cầu nhà soạn nhạc" composer require voku/simple-mysqli
Khởi động trình điều khiển use voku\db\DB;
require_once 'composer/autoload.php';
$db = DB::getInstance('yourDbHost', 'yourDbUser', 'yourDbPassword', 'yourDbName');
// example
// $db = DB::getInstance('localhost', 'root', '', 'test');
Đa năng && SingletonBạn có thể sử dụng use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
2DB. getInstance() use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
2 mà không có bất kỳ tham số nào và bạn sẽ nhận được kết nối được khởi tạo đầu tiên (dưới dạng "singleton"). Hoặc bạn có thể thay đổi tham số và bạn sẽ tạo một phiên bản "multiton" mới hoạt động giống như một singleton, nhưng bạn cần sử dụng lại các tham số đó, nếu không (không có cùng tham số), bạn sẽ nhận được một phiên bản mớiDoctrine/DBAL làm trình điều khiển chính use voku\db\DB;
require_once 'composer/autoload.php';
$connectionParams = [
'dbname' => 'yourDbName',
'user' => 'yourDbUser',
'password' => 'yourDbPassword',
'host' => 'yourDbHost',
'driver' => 'mysqli', // 'pdo_mysql' || 'mysqli'
'charset' => 'utf8mb4',
];
$config = new \Doctrine\DBAL\Configuration();
$doctrineConnection = \Doctrine\DBAL\DriverManager::getConnection(
$connectionParams,
$config
);
$doctrineConnection->connect();
$db = DB::getInstanceDoctrineHelper($doctrineConnection);
Sử dụng lớp "DB"Có rất nhiều cách sử dụng thư viện này, đây là một số ví dụ về các phương pháp phổ biến nhất Chọn và truy xuất dữ liệu từ một bảng use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
Nhưng bạn cũng có thể sử dụng một phương thức cho truy vấn chọn $db->select(string $table, array $where); // generate an SELECT query
Thí dụ. LỰA CHỌN ________số 8_______Here is a list of connectors for the "WHERE"-array: 'NOT', 'IS', 'IS NOT', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN', 'LIKE', 'NOT LIKE', '>', '<', '>=', '<=', '<>', '+', '-' THÔNG TIN. sử dụng một mảng dưới dạng $value cho "[NOT] IN" và "[NOT] BETWEEN" THÔNG TIN. sử dụng + / - trong giá trị không có trong khóa của $data Thí dụ. CẬP NHẬT với "page_template = page_template + 1" $where = [
'page_type LIKE' => '%foo',
'page_type NOT LIKE' => 'bar',
];
$data = [
'page_template' => ['page_template +' => 1],
'page_type' => 'lall',
];
$resultSelect = $db->update('page', $data, $where);
Thí dụ. CHỌN với "KHÔNG VÀO" $where = [
'page_type NOT IN' => [
'foo',
'bar'
],
'page_id >' => 2,
];
$resultSelect = $db->select('page', $where);
Thí dụ. CHỌN với Bộ đệm $resultSelect = $db->execSQL("SELECT * FROM users", true, 3600);
Kết quả (thông qua $result->fetchAllArray()) chỉ được lưu vào bộ đệm trong 3600 giây khi truy vấn là câu lệnh CHỌN, nếu không, bạn sẽ nhận được kết quả mặc định từ hàm use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
2$db->query() use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
2Chèn dữ liệu vào bảngđể thao tác với các bảng, bạn có các phương thức quan trọng nhất, tất cả chúng đều hoạt động theo cùng một cách. phân tích mảng các cặp khóa/giá trị và tạo một truy vấn an toàn các phương pháp là composer require voku/simple-mysqli
0Tất cả các phương thức sẽ trả về kết quả use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
6 hoặc true/false tùy thuộc vào ngữ cảnh. Cách tiếp cận đúng nếu luôn kiểm tra xem chúng có được thực thi thành công hay không luôn được trả lạiThí dụ. XÓA BỎ composer require voku/simple-mysqli
1Ghi chú. tất cả các giá trị tham số đều được khử trùng trước khi thực thi, bạn không cần phải thoát các giá trị trước Thí dụ. CHÈN composer require voku/simple-mysqli
2Thí dụ. THAY THẾ composer require voku/simple-mysqli
3Các tham số ràng buộc trên các truy vấnCác tham số ràng buộc là một cách tốt để ngăn chặn việc tiêm mysql vì các tham số được khử trùng trước khi thực thi composer require voku/simple-mysqli
4giao dịchSử dụng use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
7, use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
8 và use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
9 để quản lý giao dịch composer require voku/simple-mysqli
5Bất kỳ lỗi SQL nào giữa use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
7 và use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
8 sẽ mang lại kết quả $db->select(string $table, array $where); // generate an SELECT query
2Bạn cũng có thể sử dụng phương pháp $db->select(string $table, array $where); // generate an SELECT query
3. Điều sau đây tương đương với điều trên composer require voku/simple-mysqli
6Sử dụng lớp "Kết quả"Sau khi thực hiện một truy vấn $db->select(string $table, array $where); // generate an SELECT query
4, bạn nhận được một đối tượng $db->select(string $table, array $where); // generate an SELECT query
5 sẽ giúp bạn thao tác với dữ liệu kết quả. có nhiều cách khác nhau để truy cập dữ liệu này, hãy kiểm tra các ví dụ dưới đâyĐang tìm nạp tất cả dữ liệu composer require voku/simple-mysqli
7Tìm nạp tất cả dữ liệu hoạt động như Kết quả. RESULT_TYPE_* phương thức $db->select(string $table, array $where); // generate an SELECT query
6 và $db->select(string $table, array $where); // generate an SELECT query
7 sẽ trả về giá trị mặc định dựa trên cấu hình $db->select(string $table, array $where); // generate an SELECT query
8. các phương pháp khác là composer require voku/simple-mysqli
8Tìm nạp các trường bảng cơ sở dữ liệuTrả về các hàng thông tin trường trong một tập hợp kết quả composer require voku/simple-mysqli
9Chuyển $db->select(string $table, array $where); // generate an SELECT query
9 làm đối số nếu bạn muốn mỗi thông tin trường được trả về dưới dạng một mảng kết hợp thay vì một đối tượng. Giá trị mặc định là trả về từng cái dưới dạng một đối tượng, giống hệt như hàm $where = [
'page_type =' => 'article',
'page_type NOT LIKE' => '%���123',
'page_id >=' => 2,
];
$articles = $db->select('page', $where);
echo 'There are ' . count($articles) . ' article(s):' . PHP_EOL;
foreach ($articles as $article) {
echo 'Type: ' . $article['page_type'] . PHP_EOL;
echo 'ID: ' . $article['page_id'] . PHP_EOL;
}
0Đang tìm nạp + Có thể gọiTìm nạp một hàng hoặc một cột trong một hàng use voku\db\DB;
require_once 'composer/autoload.php';
$db = DB::getInstance('yourDbHost', 'yourDbUser', 'yourDbPassword', 'yourDbName');
// example
// $db = DB::getInstance('localhost', 'root', '', 'test');
0Phương thức này tạo cơ sở cho tất cả các phương thức tìm nạp_. Tất cả các hình thức tìm nạp_ chuyển con trỏ hàng bên trong sang hàng tiếp theo. $where = [
'page_type =' => 'article',
'page_type NOT LIKE' => '%���123',
'page_id >=' => 2,
];
$articles = $db->select('page', $where);
echo 'There are ' . count($articles) . ' article(s):' . PHP_EOL;
foreach ($articles as $article) {
echo 'Type: ' . $article['page_type'] . PHP_EOL;
echo 'ID: ' . $article['page_id'] . PHP_EOL;
}
1 sẽ được trả về khi không còn hàng nào được tìm nạpTìm nạp + Chuyển đổiTrả về tất cả các hàng cùng một lúc, được chuyển đổi dưới dạng một mảng các mảng use voku\db\DB;
require_once 'composer/autoload.php';
$db = DB::getInstance('yourDbHost', 'yourDbUser', 'yourDbPassword', 'yourDbName');
// example
// $db = DB::getInstance('localhost', 'root', '', 'test');
1Hoán vị một tập hợp kết quả gồm X hàng, mỗi hàng có Y cột sẽ dẫn đến một mảng Y hàng, mỗi hàng có X cột Truyền tên cột làm đối số để trả về mỗi cột dưới dạng một mảng kết hợp với các khóa được lấy từ các giá trị của cột được cung cấp. Nếu không được cung cấp, các phím sẽ là số bắt đầu từ số không e. g use voku\db\DB;
require_once 'composer/autoload.php';
$db = DB::getInstance('yourDbHost', 'yourDbUser', 'yourDbPassword', 'yourDbName');
// example
// $db = DB::getInstance('localhost', 'root', '', 'test');
2Tìm nạp + CặpTrả về tất cả các hàng cùng một lúc dưới dạng cặp khóa-giá trị bằng cách sử dụng cột trong đối số đầu tiên làm khóa use voku\db\DB;
require_once 'composer/autoload.php';
$db = DB::getInstance('yourDbHost', 'yourDbUser', 'yourDbPassword', 'yourDbName');
// example
// $db = DB::getInstance('localhost', 'root', '', 'test');
3Truyền tên cột làm đối số thứ hai để chỉ trả về một cột duy nhất làm giá trị trong mỗi cặp use voku\db\DB;
require_once 'composer/autoload.php';
$db = DB::getInstance('yourDbHost', 'yourDbUser', 'yourDbPassword', 'yourDbName');
// example
// $db = DB::getInstance('localhost', 'root', '', 'test');
4Tìm nạp + NhómTrả về tất cả các hàng cùng một lúc dưới dạng một mảng được nhóm use voku\db\DB;
require_once 'composer/autoload.php';
$db = DB::getInstance('yourDbHost', 'yourDbUser', 'yourDbPassword', 'yourDbName');
// example
// $db = DB::getInstance('localhost', 'root', '', 'test');
5Truyền tên cột làm đối số thứ hai để chỉ trả về các cột đơn làm giá trị trong mỗi nhóm use voku\db\DB;
require_once 'composer/autoload.php';
$db = DB::getInstance('yourDbHost', 'yourDbUser', 'yourDbPassword', 'yourDbName');
// example
// $db = DB::getInstance('localhost', 'root', '', 'test');
6Đang tìm nạp + đầu tiênTrả về phần tử hàng đầu tiên từ kết quả use voku\db\DB;
require_once 'composer/autoload.php';
$db = DB::getInstance('yourDbHost', 'yourDbUser', 'yourDbPassword', 'yourDbName');
// example
// $db = DB::getInstance('localhost', 'root', '', 'test');
7Truyền tên cột làm đối số để trả về một cột từ hàng đầu tiên use voku\db\DB;
require_once 'composer/autoload.php';
$db = DB::getInstance('yourDbHost', 'yourDbUser', 'yourDbPassword', 'yourDbName');
// example
// $db = DB::getInstance('localhost', 'root', '', 'test');
8Đang tìm nạp + lần cuốiTrả về phần tử hàng cuối cùng từ kết quả use voku\db\DB;
require_once 'composer/autoload.php';
$db = DB::getInstance('yourDbHost', 'yourDbUser', 'yourDbPassword', 'yourDbName');
// example
// $db = DB::getInstance('localhost', 'root', '', 'test');
9Truyền tên cột làm đối số để trả về một cột từ hàng cuối cùng use voku\db\DB;
require_once 'composer/autoload.php';
$connectionParams = [
'dbname' => 'yourDbName',
'user' => 'yourDbUser',
'password' => 'yourDbPassword',
'host' => 'yourDbHost',
'driver' => 'mysqli', // 'pdo_mysql' || 'mysqli'
'charset' => 'utf8mb4',
];
$config = new \Doctrine\DBAL\Configuration();
$doctrineConnection = \Doctrine\DBAL\DriverManager::getConnection(
$connectionParams,
$config
);
$doctrineConnection->connect();
$db = DB::getInstanceDoctrineHelper($doctrineConnection);
0Đang tìm nạp + lát cắtTrả về một lát hàng từ kết quả use voku\db\DB;
require_once 'composer/autoload.php';
$connectionParams = [
'dbname' => 'yourDbName',
'user' => 'yourDbUser',
'password' => 'yourDbPassword',
'host' => 'yourDbHost',
'driver' => 'mysqli', // 'pdo_mysql' || 'mysqli'
'charset' => 'utf8mb4',
];
$config = new \Doctrine\DBAL\Configuration();
$doctrineConnection = \Doctrine\DBAL\DriverManager::getConnection(
$connectionParams,
$config
);
$doctrineConnection->connect();
$db = DB::getInstanceDoctrineHelper($doctrineConnection);
1Ở trên sẽ trả về 10 hàng bỏ qua hàng đầu tiên. Tham số đầu tiên là phần bù dựa trên số không; . Các phương thức này về cơ bản hoạt động giống như hàm $where = [
'page_type =' => 'article',
'page_type NOT LIKE' => '%���123',
'page_id >=' => 2,
];
$articles = $db->select('page', $where);
echo 'There are ' . count($articles) . ' article(s):' . PHP_EOL;
foreach ($articles as $article) {
echo 'Type: ' . $article['page_type'] . PHP_EOL;
echo 'ID: ' . $article['page_id'] . PHP_EOL;
}
2 tích hợp sẵn của PHPTìm nạp + bản đồĐặt chức năng gọi lại trình ánh xạ được sử dụng bên trong phương thức $where = [
'page_type =' => 'article',
'page_type NOT LIKE' => '%���123',
'page_id >=' => 2,
];
$articles = $db->select('page', $where);
echo 'There are ' . count($articles) . ' article(s):' . PHP_EOL;
foreach ($articles as $article) {
echo 'Type: ' . $article['page_type'] . PHP_EOL;
echo 'ID: ' . $article['page_id'] . PHP_EOL;
}
3 use voku\db\DB;
require_once 'composer/autoload.php';
$connectionParams = [
'dbname' => 'yourDbName',
'user' => 'yourDbUser',
'password' => 'yourDbPassword',
'host' => 'yourDbHost',
'driver' => 'mysqli', // 'pdo_mysql' || 'mysqli'
'charset' => 'utf8mb4',
];
$config = new \Doctrine\DBAL\Configuration();
$doctrineConnection = \Doctrine\DBAL\DriverManager::getConnection(
$connectionParams,
$config
);
$doctrineConnection->connect();
$db = DB::getInstanceDoctrineHelper($doctrineConnection);
2Ví dụ trên sẽ ánh xạ một hàng (0) từ kết quả vào một đối tượng. Đặt chức năng gọi lại của trình ánh xạ thành null để tắt chức năng này Tìm nạp + bí danh use voku\db\DB;
require_once 'composer/autoload.php';
$connectionParams = [
'dbname' => 'yourDbName',
'user' => 'yourDbUser',
'password' => 'yourDbPassword',
'host' => 'yourDbHost',
'driver' => 'mysqli', // 'pdo_mysql' || 'mysqli'
'charset' => 'utf8mb4',
];
$config = new \Doctrine\DBAL\Configuration();
$doctrineConnection = \Doctrine\DBAL\DriverManager::getConnection(
$connectionParams,
$config
);
$doctrineConnection->connect();
$db = DB::getInstanceDoctrineHelper($doctrineConnection);
3Tìm nạp + Lặp lạiĐể lặp lại tập kết quả, bạn có thể sử dụng bất kỳ phương thức tìm nạp () nào được liệt kê ở trên use voku\db\DB;
require_once 'composer/autoload.php';
$connectionParams = [
'dbname' => 'yourDbName',
'user' => 'yourDbUser',
'password' => 'yourDbPassword',
'host' => 'yourDbHost',
'driver' => 'mysqli', // 'pdo_mysql' || 'mysqli'
'charset' => 'utf8mb4',
];
$config = new \Doctrine\DBAL\Configuration();
$doctrineConnection = \Doctrine\DBAL\DriverManager::getConnection(
$connectionParams,
$config
);
$doctrineConnection->connect();
$db = DB::getInstanceDoctrineHelper($doctrineConnection);
4Thực hiện nhiều truy vấnĐể thực hiện nhiều truy vấn, bạn có thể sử dụng phương thức use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
2$db->multi_query() use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
2. Bạn có thể sử dụng nhiều truy vấn được phân tách bằng " use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
2; use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
2"Return-Types - "Kết quả"-Mảng theo truy vấn "CHỌN"
- "bool" chỉ bằng truy vấn "INSERT"
- "bool" chỉ bởi (affected_rows) bởi truy vấn "CẬP NHẬT / XÓA"
- "bool" chỉ bởi e. g. Truy vấn "DROP"
e. g use voku\db\DB;
require_once 'composer/autoload.php';
$connectionParams = [
'dbname' => 'yourDbName',
'user' => 'yourDbUser',
'password' => 'yourDbPassword',
'host' => 'yourDbHost',
'driver' => 'mysqli', // 'pdo_mysql' || 'mysqli'
'charset' => 'utf8mb4',
];
$config = new \Doctrine\DBAL\Configuration();
$doctrineConnection = \Doctrine\DBAL\DriverManager::getConnection(
$connectionParams,
$config
);
$doctrineConnection->connect();
$db = DB::getInstanceDoctrineHelper($doctrineConnection);
5Sử dụng lớp "Chuẩn bị"Các câu lệnh chuẩn bị có lợi thế là chúng được xây dựng cùng nhau trong Máy chủ MySQL, vì vậy hiệu suất tốt hơn Nhưng việc gỡ lỗi khó hơn và không thể ghi nhật ký (thông qua PHP), vì vậy chúng tôi đã thêm một trình bao bọc cho "bind_param" có tên là "bind_param_debug". Với trình bao bọc này, chúng tôi xây dựng trước truy vấn sql qua php (chỉ để gỡ lỗi/ghi nhật ký). Bây giờ bạn có thể. g. lặp lại truy vấn THÔNG TIN. Bạn vẫn có thể sử dụng "bind_param" thay vì "bind_param_debug", e. g. nếu bạn cần hiệu suất tốt hơn CHÈN-Chuẩn bị-Truy vấn (ví dụ) use voku\db\DB;
require_once 'composer/autoload.php';
$connectionParams = [
'dbname' => 'yourDbName',
'user' => 'yourDbUser',
'password' => 'yourDbPassword',
'host' => 'yourDbHost',
'driver' => 'mysqli', // 'pdo_mysql' || 'mysqli'
'charset' => 'utf8mb4',
];
$config = new \Doctrine\DBAL\Configuration();
$doctrineConnection = \Doctrine\DBAL\DriverManager::getConnection(
$connectionParams,
$config
);
$doctrineConnection->connect();
$db = DB::getInstanceDoctrineHelper($doctrineConnection);
6CHỌN-Chuẩn bị-Truy vấn (ví dụ) use voku\db\DB;
require_once 'composer/autoload.php';
$connectionParams = [
'dbname' => 'yourDbName',
'user' => 'yourDbUser',
'password' => 'yourDbPassword',
'host' => 'yourDbHost',
'driver' => 'mysqli', // 'pdo_mysql' || 'mysqli'
'charset' => 'utf8mb4',
];
$config = new \Doctrine\DBAL\Configuration();
$doctrineConnection = \Doctrine\DBAL\DriverManager::getConnection(
$connectionParams,
$config
);
$doctrineConnection->connect();
$db = DB::getInstanceDoctrineHelper($doctrineConnection);
7Ghi nhật ký và lỗiBạn có thể nối vào Lớp "DB", vì vậy bạn có thể sử dụng - Lớp "Logger" cá nhân của mình. Nhưng bạn phải bao gồm các phương pháp use voku\db\DB;
require_once 'composer/autoload.php';
$connectionParams = [
'dbname' => 'yourDbName',
'user' => 'yourDbUser',
'password' => 'yourDbPassword',
'host' => 'yourDbHost',
'driver' => 'mysqli', // 'pdo_mysql' || 'mysqli'
'charset' => 'utf8mb4',
];
$config = new \Doctrine\DBAL\Configuration();
$doctrineConnection = \Doctrine\DBAL\DriverManager::getConnection(
$connectionParams,
$config
);
$doctrineConnection->connect();
$db = DB::getInstanceDoctrineHelper($doctrineConnection);
8Bạn cũng có thể tắt tính năng ghi nhật ký của mọi truy vấn sql, với tham số "getInstance()" "logger_level" từ "DB" -Class. Nếu bạn đặt "logger_level" thành thứ gì đó không phải là "TRACE" hoặc "DEBUG", "DB"-Class sẽ chỉ ghi lại các lỗi nữa use voku\db\DB;
require_once 'composer/autoload.php';
$connectionParams = [
'dbname' => 'yourDbName',
'user' => 'yourDbUser',
'password' => 'yourDbPassword',
'host' => 'yourDbHost',
'driver' => 'mysqli', // 'pdo_mysql' || 'mysqli'
'charset' => 'utf8mb4',
];
$config = new \Doctrine\DBAL\Configuration();
$doctrineConnection = \Doctrine\DBAL\DriverManager::getConnection(
$connectionParams,
$config
);
$doctrineConnection->connect();
$db = DB::getInstanceDoctrineHelper($doctrineConnection);
9Hiển thị nhật ký truy vấn. Nhật ký đi kèm với SQL được thực thi, thời gian thực hiện và số lượng hàng kết quả use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
0Để gỡ lỗi lỗi mysql, hãy sử dụng $where = [
'page_type =' => 'article',
'page_type NOT LIKE' => '%���123',
'page_id >=' => 2,
];
$articles = $db->select('page', $where);
echo 'There are ' . count($articles) . ' article(s):' . PHP_EOL;
foreach ($articles as $article) {
echo 'Type: ' . $article['page_type'] . PHP_EOL;
echo 'ID: ' . $article['page_id'] . PHP_EOL;
}
8 để tìm nạp tất cả các lỗi (trả về false nếu không có lỗi) hoặc $where = [
'page_type =' => 'article',
'page_type NOT LIKE' => '%���123',
'page_id >=' => 2,
];
$articles = $db->select('page', $where);
echo 'There are ' . count($articles) . ' article(s):' . PHP_EOL;
foreach ($articles as $article) {
echo 'Type: ' . $article['page_type'] . PHP_EOL;
echo 'ID: ' . $article['page_id'] . PHP_EOL;
}
9 để biết thông tin về lỗi cuối cùng use voku\db\DB;
$db = DB::getInstance();
$result = $db->query("SELECT * FROM users");
$users = $result->fetchAll();
1Nhưng cách dễ nhất để gỡ lỗi là cấu hình "DB"-Class thông qua "DB. getInstance()" để hiển thị lỗi và thoát khi có lỗi (xem ví dụ ở trên). Bây giờ bạn có thể thấy các lỗi SQL trong trình duyệt của mình nếu bạn đang làm việc trên "localhost" hoặc bạn có thể triển khai "checkForDev()" của riêng mình thông qua một chức năng đơn giản, bạn không cần phải mở rộng Lớp "Gỡ lỗi". Nếu bạn nhận được thông báo lỗi qua e-mail, bạn có thể triển khai chức năng "mailToAdmin()" của riêng mình thay vì mở rộng Lớp "Gỡ lỗi"
Làm cách nào để tạo một lớp trong MySQLi?
Tạo lớp học. . Chuẩn bị Tên lớp, biến và hàm của chúng tôi Thiết lập kết nối MySQL trong hàm tạo Một Hàm sẽ thực thi tất cả các câu lệnh Chèn chức năng Chọn chức năng Cập nhật chức năng Xóa chức năng Tạo/khởi tạo lớp cơ sở dữ liệu
Chức năng MySQLi trong PHP là gì?
Tiện ích mở rộng MySQLi (MySQL được cải tiến) là trình điều khiển cơ sở dữ liệu quan hệ được sử dụng trong ngôn ngữ kịch bản PHP để cung cấp giao diện với cơ sở dữ liệu MySQL . Có ba tùy chọn API chính khi xem xét kết nối với máy chủ cơ sở dữ liệu MySQL. Phần mở rộng MySQL của PHP. Phần mở rộng MySQLi của PHP. Đối tượng dữ liệu PHP (PDO)
Sự khác biệt giữa MySQL và MySQLi là gì?
Về cơ bản, MySQL là trình điều khiển cơ sở dữ liệu cũ và MySQLi là trình điều khiển được cải tiến . Chữ "i" là viết tắt của từ "improved" tức là MySQL đã được cải thiện. MySQLi có thể được thực hiện theo thủ tục và hướng đối tượng trong khi MySQL chỉ có thể được sử dụng theo thủ tục. Mysqli cũng hỗ trợ các câu lệnh đã chuẩn bị để bảo vệ khỏi SQL Injection.
Sự khác biệt giữa MySQLi và PDO trong PHP 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. |