PHP MySQL 함수

PHP MySQL 개요

MySQL 함수는 MySQL 데이터베이스 서버에 접근할 수 있도록 합니다.

설치

이 클래스 함수를 원활하게 사용할 수 있도록 PHP를 컴파일할 때 MySQL 지원을 추가해야 합니다.

컴파일할 때 --with-mysql[=DIR] 구성 옵션을 사용하면 됩니다. 선택적인 [DIR]는 MySQL 설치 디렉토리를 가리킵니다.

이 MySQL 확장 라이브러리는 MySQL 4.1.0 이상의 버전과 호환되지만, 이 버전에서 제공하는 추가 기능을 지원하지 않습니다. 이 기능을 사용하려면 MySQLi 확장 라이브러리를 사용하세요.

mysql 확장 라이브러리와 mysqli 확장 라이브러리를 동시에 설치하려면, 충돌을 피하기 위해 동일한 클라이언트 라이브러리를 사용해야 합니다.

Linux 시스템에서 설치

PHP 4

기본적으로 --with-mysql 옵션을开启了. 이 기본 동작은 --without-mysql 구성 옵션을 사용하여 차단할 수 있습니다. MySQL을 사용하려면 설치 디렉토리를 지정하지 않으면 PHP가 바인딩된 MySQL 클라이언트 연결 라이브러리를 사용합니다.

MySQL을 사용하는 다른 응용 프로그램(예: auth-mysql)의 사용자는 바인딩된 라이브러리를 사용하지 않고 MySQL 설치 디렉토리를 지정해야 합니다. 예를 들어: --with-mysql=/path/to/mysql. 이렇게 하면 PHP가 MySQL 설치와 함께 설치된 클라이언트 연결 라이브러리를 사용하도록 강제되어, 어떤 충돌도 발생하지 않습니다.

PHP 5+

MySQL 기본적으로 비활성화되어 있으며, 바인딩된 MySQL 라이브러리도 없습니다. MySQL 지원을 추가하기 위해 --with-mysql[=DIR] 구성 옵션을 사용하세요. 다음과 같이 MySQL 설치 디렉토리를 지정할 수 있습니다: --with-mysql=/path/to/mysql. 이렇게 하면 PHP가 MySQL 설치와 함께 설치된 클라이언트 연결 라이브러리를 사용하도록 강제되어, 어떤 충돌도 발생하지 않습니다. MySQL 헤더 파일과 라이브러리를 다운로드하세요.

Windows 시스템에서 설치

PHP 4

PHP MySQL 확장은 PHP에 컴파일되었습니다.

PHP 5+

MySQL 기본적으로 비활성화되어 있으므로 php.ini에서 php_mysql.dll 동적 라이브러리를 활성화해야 합니다. 또한, PHP는 MySQL 클라이언트 연결 라이브러리에 접근해야 합니다. PHP의 Windows 배포판에는 libmysql.dll이 포함되어 있으며, PHP가 MySQL과 대화를 할 수 있도록 이 파일을 Windows의 시스템 경로 PATH에 배치해야 합니다.

PHP 확장 라이브러리(예: php_mysql.dll)를 활성화하려면 PHP 명령어 extension_dir를 PHP 확장 라이브러리가 있는 디렉토리로 설정해야 합니다. PHP 5에서 extension_dir 값의 예는 c:\php\ext입니다.

주석:웹 서버를 시작할 때 아래와 같은 오류가 발생하면: "Unable to load dynamic library './php_mysql.dll'" 이는 시스템이 php_mysql.dll 및 / 또는 libmysql.dll을 찾을 수 없기 때문입니다.

런타임 설정

MySQL 함수의 행동은 php.ini에서 설정된 것에 영향을 받습니다.

MySQL 설정 옵션:

이름 기본 설명 변경 가능
mysql.allow_persistent "1" MySQL의 지속적인 연결을 허용할지 여부. PHP_INI_SYSTEM
mysql.max_persistent "-1" 각 프로세스에서 최대 지속적인 연결 수. PHP_INI_SYSTEM
mysql.max_links "-1" 각 프로세스에서 최대 연결 수, 지속적인 연결 포함. PHP_INI_SYSTEM
mysql.trace_mode "0" 트래킹 모드. PHP 4.3.0부터 사용 가능. PHP_INI_ALL
mysql.default_port NULL 기본적으로 사용하는 데이터베이스에 연결하는 TCP 포트 번호를 지정합니다. PHP_INI_ALL
mysql.default_socket NULL 기본적으로 사용하는 소켓 이름. PHP 4.0.1부터 사용 가능. PHP_INI_ALL
mysql.default_host NULL 기본적으로 사용하는 서버 주소. SQL 보안 모드에 적용되지 않습니다. PHP_INI_ALL
mysql.default_user NULL 기본적으로 사용하는 사용자 이름. SQL 보안 모드에 적용되지 않습니다. PHP_INI_ALL
mysql.default_password NULL 기본적으로 사용하는 비밀번호. SQL 보안 모드에 적용되지 않습니다. PHP_INI_ALL
mysql.connect_timeout "60" 연결 초과 시간(초). PHP_INI_ALL

자원 유형

MySQL 모듈에서 두 가지 자원 유형이 사용됩니다. 첫 번째는 데이터베이스 연결 핸들입니다. 두 번째는 SQL 쿼리가 반환하는 결과 집합입니다.

PHP MySQL 함수

PHP:이 함수를 지원하는 가장 빠른 PHP 버전을 지시합니다.

함수 설명 PHP
mysql_affected_rows() 마지막 MySQL 작업이 영향을 미친 레코드 행 수를 얻습니다. 3
mysql_change_user() 지지되지 않습니다. 활성 연결에서 로그인한 사용자를 변경합니다. 3
mysql_client_encoding() 현재 연결의 문자 집합 이름을 반환합니다. 4
mysql_close() 비영구적인 MySQL 연결을 닫습니다. 3
mysql_connect() 비영구적인 MySQL 연결을 엽니다. 3
mysql_create_db() 지지되지 않습니다. MySQL 데이터베이스를 생성합니다. mysql_query()를 대신 사용합니다. 3
mysql_data_seek() 레코드 포인터를 이동합니다. 3
mysql_db_name() mysql_list_dbs() 호출에서 데이터베이스 이름을 반환합니다. 3
mysql_db_query()

지지되지 않습니다. MySQL 쿼리를 보냅니다.

mysql_select_db()와 mysql_query()를 대신 사용합니다.

3
mysql_drop_db()

지지되지 않습니다. MySQL 데이터베이스를 제거합니다.

mysql_query() 대신 사용하세요.

3
mysql_errno() 마지막 MySQL 작업에서 발생한 오류 정보의 숫자 코드를 반환합니다. 3
mysql_error() 마지막 MySQL 작업에서 발생한 텍스트 오류 정보를 반환합니다. 3
mysql_escape_string()

지지되지 않습니다. mysql_query에 대한 문자열을 탈의합니다.

mysql_real_escape_string()를 대신 사용합니다.

4
mysql_fetch_array() 결과 집합에서 한 행을 연관 배열, 숫자 배열 또는 둘 다로 얻습니다. 3
mysql_fetch_assoc() 결과 집합에서 한 행을 연관 배열로 얻습니다. 4
mysql_fetch_field() 결과 집합에서 열 정보를 얻고 객체로 반환합니다. 3
mysql_fetch_lengths() 결과 집합에서 각 필드의 내용의 길이를 얻습니다. 3
mysql_fetch_object() 결과 집합에서 한 행을 객체로 얻습니다. 3
mysql_fetch_row() 결과 집합에서 한 행을 숫자 배열로 얻습니다. 3
mysql_field_flags() 결과에서 지정된 필드와 관련된 플래그를 얻습니다. 3
mysql_field_len() 지정된 필드의 길이를 반환합니다. 3
mysql_field_name() 결과 중 지정된 필드의 필드 이름을 얻습니다. 3
mysql_field_seek() 결과 집의 포인터를 지정된 필드 오프셋으로 설정합니다. 3
mysql_field_table() 지정된 필드가 있는 테이블 이름을 얻습니다. 3
mysql_field_type() 결과 집에서 지정된 필드의 타입을 얻습니다. 3
mysql_free_result() 결과 메모리를 해제합니다. 3
mysql_get_client_info() MySQL 클라이언트 정보를 얻습니다. 4
mysql_get_host_info() MySQL 호스트 정보를 얻습니다. 4
mysql_get_proto_info() MySQL 프로토콜 정보를 얻습니다. 4
mysql_get_server_info() MySQL 서버 정보를 얻습니다. 4
mysql_info() 최근 쿼리 정보를 얻습니다. 4
mysql_insert_id() 마지막 INSERT 작업에서 생성된 ID를 얻습니다. 3
mysql_list_dbs() MySQL 서버 중의 모든 데이터베이스를 나열합니다. 3
mysql_list_fields()

지지하지 않습니다. MySQL 결과 중의 필드를 나열합니다.

mysql_query() 대신 사용하세요.

3
mysql_list_processes() MySQL 프로세스를 나열합니다. 4
mysql_list_tables()

지지하지 않습니다. MySQL 데이터베이스 중의 테이블을 나열합니다.

Use mysql_query() 대신 사용하세요.

3
mysql_num_fields() 결과 집에서 필드의 수를 얻습니다. 3
mysql_num_rows() 결과 집에서 행의 수를 얻습니다. 3
mysql_pconnect() MySQL 서버로의 지속적인 연결을 엽니다. 3
mysql_ping() 서버 연결을 Ping합니다. 연결이 없으면 다시 연결합니다. 4
mysql_query() MySQL 쿼리를 보냅니다. 3
mysql_real_escape_string() SQL 문에서 사용하는 문자열의 특수 문자를 escaping합니다. 4
mysql_result() 결과 데이터를 얻습니다. 3
mysql_select_db() MySQL 데이터베이스를 선택합니다. 3
mysql_stat() 현재 시스템 상태를 얻습니다. 4
mysql_tablename() 지지하지 않습니다. 테이블 이름을 얻습니다. mysql_query() 대신 사용하세요. 3
mysql_thread_id() 현재 스레드의 ID를 반환합니다. 4
mysql_unbuffered_query() MySQL에 SQL 쿼리를 전송합니다 (결과를 가져오거나 캐싱하지 않습니다). 4

PHP MySQL 상수

PHP 4.3.0 이후 버전에서 mysql_connect() 함수와 mysql_pconnect() 함수에서 더 많은 클라이언트 태그를 지정할 수 있습니다:

PHP:이 상수를 지원하는 가장 오래된 PHP 버전을 나타냅니다.

상수 설명 PHP
MYSQL_CLIENT_COMPRESS 압축된 통신 프로토콜을 사용합니다. 4.3
MYSQL_CLIENT_IGNORE_SPACE 함수 이름 뒤에 공백을 두는 것을 허용합니다. 4.3
MYSQL_CLIENT_INTERACTIVE 연결을 닫기 전까지 허용된 상호작용 비활성 시간. 4.3
MYSQL_CLIENT_SSL SSL 암호화 사용 (MySQL 클라이언트 라이브러리 버전 4+에서만 사용 가능). 4.3

mysql_fetch_array() 함수는 반환된 배열의 유형을 나타내는 상수를 사용합니다:

상수 설명 PHP
MYSQL_ASSOC 반환된 데이터 열은 필드 이름을 사용하여 배열의 인덱스 이름으로 사용됩니다.  
MYSQL_BOTH 반환된 데이터 열은 필드 이름 및 숫자 인덱스를 사용하여 배열의 인덱스 이름으로 사용됩니다.  
MYSQL_NUM

반환된 데이터 열은 숫자 인덱스를 사용하여 배열의 인덱스 이름으로 사용됩니다.

인덱스는 0에서 시작하여, 결과의 첫 번째 필드를 나타냅니다.