mysql_query()는 현재 서버에서 동작중인 데이터베이스로부터 특정 link identifier로 질의를 전송한다. 만일, link_identifier를 설정하지 않으면 가장 최근에 열려진 link를 사용하게 된다. 열려진 link가 없으면, 옵션 인자 없이 실행된 mysql_connect() 함수처럼 link를 생성하여 사용한다.
참고: 질의에 쓰이는 문자열 마지막에 세미콜론(;)를 붙이면 안된다.
mysql_query() 함수는 질의 성공 여부에 따라 TRUE(0이 아닌값) 또는 FALSE를 반환한다. 서버로부터 실행된 질의가 실행되고 그 질의 내용에 문제가 없어야만, TRUE값을 반환한다. 이 반환 값은 질의에 해당하는 열 개수 등과는 관련이 없다.
다음 질의는 틀린 문장이기 때문에 mysql_query()는 실패하며, FALSE값을 반환한다:
다음 질의는 문법은 맞지만 실제로 테이블 my_tbl에 행 my_col이 없기 때문에 mysql_query() 함수는 실패하며, FALSE값을 반환한다:
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().