(PHP 4, PHP 5)
mysql_connect — MySQL 서버에 접속
MySQL 서버에 접속을 생성하거나 기존 접속을 재사용한다.
MySQL 서버명을 입력하며, 포트번호가 포함될 수 있다. 예) "hostname:port" 또는, 로컬호스트를 위해 로컬 소켓 경로가 될 수도 있다. 예) ":/path/to/socket"
PHP 지시어 mysql.default_host를 지정하지 않았다면(기본값), 'localhost:3306'입니다. SQL 안전 모드에서는, 이 인수를 무시하고 항상 'localhost:3306' 값을 사용합니다.
사용자명. 기본값은 mysql.default_user로 지정합니다. SQL 안전 모드에서는, 이 인수를 무시하고 사용중인 서버 프로세스를 소유하는 사용자 이름을 사용합니다.
비밀번호. 기본값은 mysql.default_password로 지정합니다. SQL 안전 모드에서는, 이 인수를 무시하고 빈 비밀번호를 사용합니다.
동일한 인수로 mysql_connect()을 다시 호출하면, 새로운 link가 생성되는 것이 아니라, 이미 생성된 link 식별자 값을 돌려받게 된다. 단, new_link 로 mysql_connect()를 호출하면 동일한 인수로 mysql_connect()를 이미 호출하였다 하더라도 항상 새로운 접속을 생성한다. SQL 안전 모드에서는, 이 인수를 무시합니다.
client_flags 인수는 다음 상수들을 조합하여 사용할 수 있습니다: 128 (LOAD DATA LOCAL 핸들링 활성화), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE, MYSQL_CLIENT_INTERACTIVE. 자세한 정보는 예약 상수를 읽어보십시오. 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을 로딩할 수 없을 수 있습니다.