mysql_ping
mysql_real_escape_string
MySQL 함수 목록
PHP Manual

# mysql_query

(PHP 4, PHP 5)

mysql_query — MySQL 질의를 전송

### 설명

resource mysql_query ( string `$query` [, resource `$link_identifier` ] )

mysql_query()는 `link_identifier` 로 지정한 데이터베이스 서버에 하나의 질의를 전송합니다. (다중 질의는 지원하지 않습니다)

### 인수

`query`

  SQL 질의

  질의 문자열은 세미콜론으로 끝나지 않아야 합니다.

`link_identifier`

  MySQL 연결. 지정하지 않으면 mysql_connect()로 연 마지막 연결을 사용합니다. 연결이 없으면, 인수 없이 mysql_connect()를 호출하여 연결을 만듭니다. 연결이 성립되지 않으면 `E_WARNING` 등급의 오류를 생성합니다.

### 반환값

mysql_query()는 SELECT, SHOW, DESCRIBE, EXPLAIN, 결과셋을 반환하는 기타 구문에서 성공시 resource를, 오류시 `FALSE`를 반환합니다.

mysql_query()는 다른 형식의 SQL 구문, INSERT, UPDATE, DELETE, DROP 등에서 성공하면 `TRUE`를, 실패하면 `FALSE`를 반환합니다.

반환되는 결과 리소스는 mysql_fetch_array()와 같은 결과 테이블을 다루는 함수들에 전달하여 데이터에 접근할 수 있다.

SELECT 구문으로 부터 얼마나 많은 행이 있는지 알기 위해서는 mysql_num_rows()를, DELETE, INSERT, REPLACE, UPDATE 구문으로 변경된 행의 개수를 알기 위해서는 mysql_affected_rows()를 사용한다.

질의에 의해 참조되는 테이블에 접근을 허용되지 않은 사용자에 의해 mysql_query()가 실패하면 `FALSE`를 반환한다.

### 예제

Example #1 잘못된 질의

다음 질의는 문법적으로 오류가 있어서 mysql_query()는 실패하고, `FALSE`를 반환한다.

`<?php
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
die('Invalid query: ' . mysql_error());
}
?>`

Example #2 유효한 질의

다음 질의는 유효한 질의로서 mysql_query()는 resource를 반환한다.

`<?php
// 사용자에 의해서 주어집니다. 예를 들면,
$firstname = 'fred';
$lastname = 'fox';
// 질의 만들기
// SQL 질의를 수행하는 가장 좋은 방법입니다
// 더 많은 예제는, mysql_real_escape_string()을 참고하십시오
$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
mysql_real_escape_string($firstname),
mysql_real_escape_string($lastname));
// 질의 수행
$result = mysql_query($query);
// 결과 확인
// 실제 질의가 MySQL로 전해지고, 오류가 발생했을 경우입니다. 디버깅에 유용합니다.
if (!$result) {
$message = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $query;
die($message);
}
// 결과 사용하기
// $result를 출력하려고 하면, resource 내부 정보에 접근할 수 없습니다.
// mysql 결과 함수 중 하나를 사용해야 합니다.
// mysql_result(), mysql_fetch_array(), mysql_fetch_row() 등을 참고하십시오.
while ($row = mysql_fetch_assoc($result)) {
echo $row['firstname'];
echo $row['lastname'];
echo $row['address'];
echo $row['age'];
}
// 결과셋으로 할당된 리소스를 해제합니다
// 스크립트 종료 시에 자동으로 이루어집니다
mysql_free_result($result);
?>`

### 참고

- mysql_connect() - MySQL 서버에 접속
- mysql_error() - 최근 실행된 MySQL 작업으로 발생한 에러 메시지를 반환
- mysql_real_escape_string() - mysql_query에서 특수 문자열을 이스케이프하기위해 사용
- mysql_result() - 결과 데이터를 반환
- mysql_fetch_assoc() - 연관 배열로 결과 행을 반환
- mysql_unbuffered_query() - 결과 행을 버퍼링하지도 인출하지도 않으면서 MySQL로 SQL 질의를 전송

mysql_ping
mysql_real_escape_string
MySQL 함수 목록
PHP Manual