KO 한국어
버전: v2.3.0

query

임의의 SQL 쿼리를 직접 실행합니다.

query($query, $map)
반환값
[PDOStatement] 실행된 쿼리에 대한 PDOStatement 인스턴스입니다.
Medoo는 SQL-92 문법으로 쿼리를 생성합니다. Raw SQL을 직접 작성할 때는 값을 올바르게 인용해야 하며, SQL 인젝션 위험을 줄이려면 가능하면 프리페어드 스테이트먼트를 사용하세요.
$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);

식별자 인용 구문

직접 작성한 SQL에서도 테이블명과 컬럼명을 간단히 감싸는 식별자 인용 구문과 테이블 프리픽스 처리를 사용할 수 있습니다. <name>으로 식별자를 표시하면 Medoo가 설정된 프리픽스를 포함해 올바르게 인용된 테이블명 또는 컬럼명으로 바꿔 줍니다.
$data = $database->query("SELECT <email> FROM <account>")->fetchAll();
// 변환된 SQL:
// SELECT "email" FROM "account"

// 테이블 프리픽스가 설정되어 있으면 쿼리는 다음과 같이 바뀝니다:
$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

프리페어드 스테이트먼트

query()는 프리페어드 스테이트먼트도 지원합니다. Medoo는 바인딩하는 값에 맞춰 매개변수 타입을 자동으로 감지합니다.
$data = $database->query(
	"SELECT * FROM <account> WHERE <user_name> = :user_name AND <age> = :age", [
		":user_name" => "John Smith",
		":age" => 20
	]
)->fetchAll();

print_r($data);