PHP 매뉴얼
이전 |  | 다음

# mysql_query

(PHP 3, PHP 4 , PHP 5)

mysql_query -- Send a MySQL query

## 설명

int mysql_query ( string query [, int link_identifier])

mysql_query()는 현재 서버에서 동작중인 데이터베이스로부터 특정 link identifier로 질의를 전송한다. 만일, `link_identifier`를 설정하지 않으면 가장 최근에 열려진 link를 사용하게 된다. 열려진 link가 없으면, 옵션 인자 없이 실행된 mysql_connect() 함수처럼 link를 생성하여 사용한다.

> 참고: 질의에 쓰이는 문자열 마지막에 세미콜론(;)를 붙이면 안된다.

mysql_query() 함수는 질의 성공 여부에 따라 `TRUE`(0이 아닌값) 또는 `FALSE`를 반환한다. 서버로부터 실행된 질의가 실행되고 그 질의 내용에 문제가 없어야만, `TRUE`값을 반환한다. 이 반환 값은 질의에 해당하는 열 개수 등과는 관련이 없다.

다음 질의는 틀린 문장이기 때문에 mysql_query()는 실패하며, `FALSE`값을 반환한다:

예 1. mysql_query()

`<?php $result = mysql_query ("SELECT * WHERE 1=1") or die ("잘못된 질의를 실행했습니다!!"); ?>`

다음 질의는 문법은 맞지만 실제로 테이블 `my_tbl`에 행 `my_col`이 없기 때문에 mysql_query() 함수는 실패하며, `FALSE`값을 반환한다:

예 2. mysql_query()

`<?php $result = mysql_query ("SELECT my_col FROM my_tbl") or die ("잘못된 질의를 실행했습니다!!"); ?>`

mysql_query()는 질의로 참조되는 테이블에 대한 접근 권한이 없다면 실패하며, `FALSE`값을 반환한다.

질의가 성공하면 mysql_num_rows() 함수를 사용하여 SELECT문으로 반환되는 행의 개수를 얻을 수 있으며, mysql_affected_rows() 함수를 사용하면, DELETE, INSERT, REPLACE, UPDATE로 적용된 행의 개수를 얻을 수 있다.

SELECT문을 위해 mysql_query() 함수는 mysql_result() 함수에서 사용할 수 있는 새로운 result identifier를 반환한다. 결과셋을 사용한 후, mysql_free_result() 함수를 사용하여 메모리에서 제거할 수 있다. 그러나, 스크립트가 종료되는 시점에 자동적으로 메모리에서 제거가 된다.

참조: mysql_affected_rows(), mysql_db_query(), mysql_free_result(), mysql_result(), mysql_select_db(), mysql_connect().

이전 | 처음으로 | 다음
mysql_ping | 위로 | mysql_real_escape_string