PDO::query

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDO::query — 자리 표시자 없이 SQL 문을 준비하고 실행합니다.


설명

public PDO::query(string $query, ?int $fetchMode = null): PDOStatement|false


public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_COLUMN, int $colno): PDOStatement|false


public PDO::query(
    string $query,
    ?int $fetchMode = PDO::FETCH_CLASS,
    string $classname,
    array $constructorArgs
): PDOStatement|false
                

public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_INTO, object $object): PDOStatement|false

PDO::query()는 단일 함수 호출로 SQL 문을 준비하고 실행하여 명령문을 PDOStatement 객체로 반환합니다.

여러 번 실행해야 하는 쿼리의 경우 PDO::prepare()를 사용하여 PDOStatement 객체를 준비하고 PDOStatement::execute()를 여러 번 호출하여 명령문을 실행하면 더 나은 성능을 실현할 수 있습니다.

PDO::query()에 대한 다음 호출을 실행하기 전에 결과 세트의 모든 데이터를 가져오지 않으면 호출이 실패할 수 있습니다. PDO::query()에 대한 다음 호출을 발행하기 전에 PDOStatement::closeCursor()를 호출하여 PDOStatement 객체와 연관된 데이터베이스 자원을 해제하십시오.

메모: query에 자리 표시자가 포함된 경우 PDO::prepare()PDOStatement::execute() 메서드를 사용하여 문을 별도로 준비하고 실행해야 합니다.


매개변수

query
준비하고 실행할 SQL 문.

SQL에 자리 표시자가 포함된 경우 PDO::prepare()PDOStatement::execute()를 대신 사용해야 합니다. 또는 PDO::query()를 호출하기 전에 SQL을 수동으로 준비할 수 있으며 드라이버가 지원하는 경우 PDO::quote()를 사용하여 데이터 형식이 적절합니다.

fetchMode
반환된 PDOStatement의 기본 페치 모드입니다. PDO::FETCH_* 상수 중 하나여야 합니다.

이 인수가 함수에 전달되면 나머지 인수는 결과 명령문 개체에서 PDOStatement::setFetchMode()가 호출된 것처럼 처리됩니다. 후속 인수는 선택한 페치 모드에 따라 다릅니다.


반환 값

PDOStatement 객체를 반환하거나 실패 시 false를 반환합니다.


Examples

예제 #1 PDO::query()를 사용하여 자리 표시자가 없는 SQL을 실행할 수 있습니다.

                  
<?php
$sql = 'SELECT name, color, calories FROM fruit ORDER BY name';
foreach ($conn->query($sql) as $row) {
    print $row['name'] . "\t";
    print $row['color'] . "\t";
    print $row['calories'] . "\n";
}
?>
                  
                

위의 예는 다음을 출력합니다.

apple   red     150
banana  yellow  250
kiwi    brown   75
lemon   yellow  25
orange  orange  300
pear    green   150
watermelon      pink    90
                

기타

  • PDO::exec() - SQL 문을 실행하고 영향을 받는 행 수를 반환합니다.
  • PDO::prepare() - 실행할 명령문을 준비하고 명령문 개체를 반환합니다.
  • PDOStatement::execute() - 준비된 명령문을 실행합니다.