mysqli::real_connect
(PHP 5, PHP 7, PHP 8)
mysqli::real_connect -- mysqli_real_connect — mysql 서버에 대한 연결을 엽니다.
설명
객체 지향 스타일
public mysqli::real_connect( string $host = ?, string $username = ?, string $passwd = ?, string $dbname = ?, int $port = ?, string $socket = ?, int $flags = ? ): bool
절차적 스타일
mysqli_real_connect( mysqli $link, string $host = ?, string $username = ?, string $passwd = ?, string $dbname = ?, int $port = ?, string $socket = ?, int $flags = ? ): bool
MySQL 데이터베이스 엔진에 대한 연결을 설정합니다.
이 함수는 mysqli_connect()와 다릅니다:
- mysqli_real_connect()는 mysqli_init() 함수에 의해 생성되어야 하는 유효한 객체가 필요합니다.
- mysqli_options() 함수를 사용하여 다양한 연결 옵션을 설정할 수 있습니다.
-
flags
매개변수가 있습니다.
매개변수
mysql
- 절차적 스타일 전용: mysqli_connect() 또는 mysqli_init()에 의해 반환된 mysqli 객체
host
- 호스트 이름 또는 IP 주소일 수 있습니다.
null
값 또는 "localhost" 문자열을 이 매개변수에 전달하면 로컬 호스트가 가정됩니다. 가능하면 TCP/IP 프로토콜 대신 파이프가 사용됩니다. username
- MySQL 사용자 이름.
passwd
- 제공되거나
null
인 경우 MySQL 서버는 암호만 없는 사용자 레코드에 대해 사용자 인증을 시도합니다. 이렇게 하면 하나의 사용자 이름을 다른 권한으로 사용할 수 있습니다(암호 제공 여부에 따라 다름). dbname
- 제공된 경우 쿼리를 수행할 때 사용할 기본 데이터베이스를 지정합니다.
port
- MySQL 서버에 연결을 시도할 포트 번호를 지정합니다.
socket
- 사용해야 하는 소켓 또는 명명된 파이프를 지정합니다.
메모:
socket
매개변수를 지정하면 MySQL 서버에 연결할 때 사용할 연결 유형이 명시적으로 결정되지 않습니다. MySQL 데이터베이스에 연결하는 방법은host
매개변수에 의해 결정됩니다. flags
- 매개변수
flags
를 사용하여 다양한 연결 옵션을 설정할 수 있습니다.지원되는 플래그
이름 설명 MYSQLI_CLIENT_COMPRESS
압축 프로토콜 사용 MYSQLI_CLIENT_FOUND_ROWS
영향을 받는 행의 수가 아닌 일치하는 행의 수를 반환합니다. MYSQLI_CLIENT_IGNORE_SPACE
함수 이름 뒤에 공백을 허용하십시오. 모든 함수 이름을 예약어로 만듭니다. MYSQLI_CLIENT_INTERACTIVE
연결을 닫기 전에 비활성 시간( wait_timeout
초 대신)을interactive_timeout
초로 허용합니다.MYSQLI_CLIENT_SSL
SSL(암호화) 사용 MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT
MYSQLI_CLIENT_SSL
과 유사하지만 제공된 SSL 인증서의 유효성 검사를 비활성화합니다. 이것은 MySQL Native Driver 및 MySQL 5.6 이상을 사용하여 설치하는 경우에만 해당됩니다.메모: 보안상의 이유로
MULTI_STATEMENT
플래그는 PHP에서 지원되지 않습니다. 여러 쿼리를 실행하려면 mysqli_multi_query() 함수를 사용하십시오.
반환 값
성공하면 true
를, 실패하면 false
를 반환합니다.
Examples
예제 #1 mysqli::real_connect() 예제
객체 지향 스타일
<?php
$mysqli = mysqli_init();
if (!$mysqli) {
die('mysqli_init failed');
}
if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Setting MYSQLI_INIT_COMMAND failed');
}
if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}
if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db')) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Success... ' . $mysqli->host_info . "\n";
$mysqli->close();
?>
mysqli 클래스 확장 시 객체 지향 스타일
<?php
class foo_mysqli extends mysqli {
public function __construct($host, $user, $pass, $db) {
parent::init();
if (!parent::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Setting MYSQLI_INIT_COMMAND failed');
}
if (!parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}
if (!parent::real_connect($host, $user, $pass, $db)) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
}
}
$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');
echo 'Success... ' . $db->host_info . "\n";
$db->close();
?>
절차적 스타일
<?php
$link = mysqli_init();
if (!$link) {
die('mysqli_init failed');
}
if (!mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
die('Setting MYSQLI_INIT_COMMAND failed');
}
if (!mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}
if (!mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'my_db')) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Success... ' . mysqli_get_host_info($link) . "\n";
mysqli_close($link);
?>
위의 예는 다음을 출력합니다.
Success... MySQL host info: localhost via TCP/IP
노트
메모:
MySQLnd는 항상 서버 기본 charset을 가정합니다. 이 문자 집합은 mysqlnd가 사용할 연결 핸드 셰이크/인증 중에 전송됩니다.
Libmysqlclient는 my.cnf에 설정된 기본 charset을 사용하거나 mysqli_real_connect()를 호출하기 전에 mysqli_init() 이후에 mysqli_options()를 명시적으로 호출하여 사용합니다.
기타
- mysqli_connect() - mysqli::__construct의 별칭
- mysqli_init() - MySQLi를 초기화하고 mysqli_real_connect()와 함께 사용할 객체를 반환합니다.
- mysqli_options() - 옵션 설정
- mysqli_ssl_set() - SSL을 사용하여 보안 연결을 설정하는 데 사용됩니다.
- mysqli_close() - 이전에 열린 데이터베이스 연결을 닫습니다.