update : 2015.11.03
php.shukuma.com

검색:
 
 
MySQL 서버에 접속

mysql_connect

(PHP 4, PHP 5)

mysql_connectMySQL 서버에 접속

설명

resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )

MySQL 서버에 접속을 생성하거나 기존 접속을 재사용한다.

인수

server

MySQL 서버명을 입력하며, 포트번호가 포함될 수 있다. 예) "hostname:port" 또는, 로컬호스트를 위해 로컬 소켓 경로가 될 수도 있다. 예) ":/path/to/socket"

PHP 지시어 mysql.default_host를 지정하지 않았다면(기본값), 'localhost:3306'입니다. SQL 안전 모드에서는, 이 인수를 무시하고 항상 'localhost:3306' 값을 사용합니다.

username

사용자명. 기본값은 mysql.default_user로 지정합니다. SQL 안전 모드에서는, 이 인수를 무시하고 사용중인 서버 프로세스를 소유하는 사용자 이름을 사용합니다.

password

비밀번호. 기본값은 mysql.default_password로 지정합니다. SQL 안전 모드에서는, 이 인수를 무시하고 빈 비밀번호를 사용합니다.

new_link

동일한 인수로 mysql_connect()을 다시 호출하면, 새로운 link가 생성되는 것이 아니라, 이미 생성된 link 식별자 값을 돌려받게 된다. 단, new_linkmysql_connect()를 호출하면 동일한 인수로 mysql_connect()를 이미 호출하였다 하더라도 항상 새로운 접속을 생성한다. SQL 안전 모드에서는, 이 인수를 무시합니다.

client_flags

client_flags 인수는 다음 상수들을 조합하여 사용할 수 있습니다: 128 (LOAD DATA LOCAL 핸들링 활성화), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE, MYSQL_CLIENT_INTERACTIVE. 자세한 정보는 MySQL client constants를 읽어보십시오. SQL 안전 모드에서는, 이 인수를 무시합니다.

반환값

접속 성공시 MySQL link 식별자를 반환하고, 실패시에는 FALSE를 반환한다.

변경점

버전 설명
4.3.0 client_flags가 추가되었다.
4.2.0 new_link가 추가되었다.
3.0.10 server에 ":/path/to/socket" 를 사용할 수 있게 되었다.
3.0.0 server에 ":port" 를 사용 가능하게 되었다.

예제

Example #1 mysql_connect() 예제

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
    die(
'Could not connect: ' mysql_error());
}
echo 
'Connected successfully';
mysql_close($link);
?>

Example #2 hostname:port 문법을 사용한 mysql_connect() 예제

<?php
// we connect to example.com and port 3307
$link mysql_connect('example.com:3307''mysql_user''mysql_password');
if (!
$link) {
    die(
'Could not connect: ' mysql_error());
}
echo 
'Connected successfully';
mysql_close($link);

// we connect to localhost at port 3307
$link mysql_connect('127.0.0.1:3307''mysql_user''mysql_password');
if (!
$link) {
    die(
'Could not connect: ' mysql_error());
}
echo 
'Connected successfully';
mysql_close($link);
?>

Example #3 ":/path/to/socket" 문법을 사용한 mysql_connect() 예제

<?php
// we connect to localhost and socket e.g. /tmp/mysql.sock

//variant 1: ommit localhost
$link mysql_connect(':/tmp/mysql''mysql_user''mysql_password');
if (!
$link) {
    die(
'Could not connect: ' mysql_error());
}
echo 
'Connected successfully';
mysql_close($link);


// variant 2: with localhost
$link mysql_connect('localhost:/tmp/mysql.sock''mysql_user''mysql_password');
if (!
$link) {
    die(
'Could not connect: ' mysql_error());
}
echo 
'Connected successfully';
mysql_close($link);
?>

주의

Note:

서버에서는 "localhost" 및 "localhost:port"를 사용할 때마다 로컬 소켓(윈도우에서는 named pipe)으로 접속을 시도한다. TCP/IP를 이용하려면 "localhost" 대신 "127.0.0.1"를 사용하면 된다. MySQL 클라이언트 라이브러리가 로컬 소켓으로 잘못된 접속을 시도한다면, PHP 환경설정에 있는 항목에 경로를 수정하고, server에 빈 값으로 호출해야 한다.

Note:

서버로 접속은 mysql_close()을 명시적으로 호출하여 종료하지 않더라도 스크립트가 종료되는 순간 종료될 것이다.

Note:

함수 이름 앞에 @를 이용하여 접속 실패 에러 메시지를 출력되지 않도록 할 수 있다.

Note:

"Can't create TCP/IP socket (10106)" 오류는 보통 variables_order 설정 지시어에 E가 없을 때 발생합니다. 윈도우에서 SYSTEMROOT 환경 변수를 복사할 수 없다면, PHP에서 Winsock을 로딩할 수 없을 수 있습니다.

참고