VI Tiếng Việt
Phiên bản: v2.3.0

query

Thực thi truy vấn SQL tự viết.

query($query, $map)
Giá trị trả về
[PDOStatement] Đối tượng PDOStatement của truy vấn đã thực thi.
Medoo tạo truy vấn theo cú pháp SQL-92. Khi tự viết Raw SQL, hãy bảo đảm các giá trị được đặt dấu nháy đúng cách và ưu tiên câu lệnh chuẩn bị sẵn khi có thể để giảm nguy cơ SQL injection.
$database->query("CREATE TABLE account_storage (
	c1 INT STORAGE DISK,
	c2 INT STORAGE MEMORY
) ENGINE NDB;");

$data = $database->query("SELECT email FROM account")->fetchAll();
print_r($data);

Cú pháp đặt dấu nháy cho định danh

Trong câu lệnh Raw SQL, bạn có thể dùng cú pháp rút gọn để đặt dấu nháy cho định danh bảng và cột, đồng thời xử lý cả tiền tố bảng. Dùng <name> để đánh dấu định danh, Medoo sẽ chuyển nó thành tên bảng hoặc cột đã được đặt dấu nháy đúng cách, bao gồm cả tiền tố đã cấu hình.
$data = $database->query("SELECT <email> FROM <account>")->fetchAll();
// SQL sau khi chuyển đổi:
// SELECT "email" FROM "account"

// Nếu đã cấu hình tiền tố bảng, truy vấn sẽ trở thành:
$database = new Medoo([
	// ...
	"prefix" => "WP_"
]);

$data = $database->query("SELECT <account.email>,<account.nickname>
	FROM <account>
	WHERE <id> != 100
")->fetchAll();
SELECT "WP_account"."email", "WP_account"."nickname"
FROM "WP_account"
WHERE "id" != 100

Câu lệnh chuẩn bị sẵn

query() cũng hỗ trợ câu lệnh chuẩn bị sẵn. Medoo sẽ tự động nhận diện kiểu cho các giá trị được gán.
$data = $database->query(
	"SELECT * FROM <account> WHERE <user_name> = :user_name AND <age> = :age", [
		":user_name" => "John Smith",
		":age" => 20
	]
)->fetchAll();

print_r($data);