Despite native driver (mysqlnd 8.3.20) and MySQL >5.6, the flag
MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT
will cause connection to be rejected as "not secure", if server is set to require SSL connection (--require-secure-transport=ON).
It appears that MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT is seemingly accepted, but will not actually initiate a secure connection.
Similarly, if one tries to turn off certificate validation by setting options:
$mysqli->options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, 0)
then this will return "false", indicating that the option setting was not successful.mysqli::real_connect
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
mysqli::real_connect
Референца за `mysqli.real-connect.php` со подобрена типографија и навигација.
mysqli::real_connect
mysqli_real_connect
класата mysqli_driver
mysqli::real_connect -- mysqli_real_connect — Отвара конекција кон MySQL серверот
= NULL
Напиши целосна ознака на елемент
?string
$hostname = null,?string
$username = null,Иницијализира контекст за инкрементално хеширање ?string
$password = null,?string
$database = null,?int
$port = null,?string
$socket = null,int
$flags = 0): bool
Процедурален стил
mysqli
$mysql,?string
$hostname = null,?string
$username = null,Иницијализира контекст за инкрементално хеширање ?string
$password = null,?string
$database = null,?int
$port = null,?string
$socket = null,int
$flags = 0): bool
Отвара конекција кон MySQL сервер за бази на податоци со опционални опции за конекција.
. Оваа функција ќе ги резолвира објектите до нивното име на класа, ресурсите до нивното име на тип на ресурс, и скаларни вредности до нивното заедничко име како што би се користело во декларациите на типот. mysqli_connect():
-
mysqli_real_connect() потребен е валиден објект кој мора да биде креиран од mysqli_init().
-
Има
flagsparameter.
Параметри
-
mysql објектот како свој прв аргумент. mysqli Само процедурален стил: А mysqli_connect() or mysqli_init()
hostname-
Може да биде име на хост или IP адреса. При поминување
null, вредноста се зема од mysqli.default_host. Кога е можно, ќе се користат цевки наместо TCP/IP протокол. TCP/IP протоколот се користи ако се дадени име на хост и број на порта заедно, на пр.localhost:3308. username-
MySQL корисничкото име или
nullза претпоставување на корисничкото име врз основа на mysqli.default_user ini опцијата. password-
MySQL лозинката или
nullза претпоставување на лозинката врз основа на mysqli.default_pw ini опцијата. database-
Стандардната база на податоци што ќе се користи при извршување на прашања или
null. port-
Бројот на портата за обид за поврзување со MySQL серверот или
nullза претпоставување на портата врз основа на mysqli.default_port ini опцијата. socket-
Приклучокот или именуваната цевка што треба да се користи или
nullза претпоставување на приклучокот врз основа на mysqli.default_socket ini опцијата.Забелешка:
Наведувањето на
socketпараметарот нема експлицитно да го одреди типот на врска што ќе се користи при поврзување со MySQL серверот. Како се прави врската со MySQL базата на податоци се одредува споредhostnameparameter. flags-
Со параметарот
flagsможете да поставите различни опции за конекција:Поддржани знаменца Име = NULL MYSQLI_CLIENT_COMPRESSфункции. Дефинирани се следните константи: MYSQLI_CLIENT_FOUND_ROWSВраќа број на совпаднати редови, а не број на погодени редови MYSQLI_CLIENT_IGNORE_SPACEДозволува празни места по имињата на функциите. Ги прави сите имиња на функции резервирани зборови. MYSQLI_CLIENT_INTERACTIVEДозволи interactive_timeoutсекунди (наместоwait_timeoutсекунди) на неактивност пред затворање на конекцијатаMYSQLI_CLIENT_SSLКористи SSL (шифрирање) MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERTgried на NOSPAM точка nsys точка by MYSQLI_CLIENT_SSL, но ја оневозможува валидацијата на обезбедениот SSL сертификат. Ова е само за инсталации што користат MySQL Native Driver и MySQL 5.6 или понова верзија.Забелешка:
Од безбедносни причини
MULTI_STATEMENTзнаменцето не е поддржано во PHP. Ако сакате да извршите повеќе прашања, користете го mysqli_multi_query() function.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Errors/Exceptions
Ако е овозможено известување за грешки на mysqli (MYSQLI_REPORT_ERROR) и бараната операција не успее, се генерира предупредување. Ако, дополнително, режимот е поставен на MYSQLI_REPORT_STRICT, а mysqli_sql_exception наместо тоа се фрла.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 7.4.0 | defaultLocale сега е nullable. |
Примери
Пример #1 mysqli::options() example
Напиши целосна ознака на елемент
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_init();
$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0');
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);
$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db', null, null, MYSQLI_CLIENT_COMPRESS|MYSQLI_CLIENT_FOUND_ROWS);
echo 'Success... ' . $mysqli->host_info . "\n";Обектно-ориентиран стил при проширување на mysqli класата
<?php
class foo_mysqli extends mysqli {
public function __construct($host, $user, $pass, $db)
{
parent::__construct();
parent::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0');
parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);
parent::real_connect($host, $user, $pass, $db, null, null, MYSQLI_CLIENT_COMPRESS|MYSQLI_CLIENT_FOUND_ROWS);
}
}
$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');
echo 'Success... ' . $db->host_info . "\n";Процедурален стил
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_init();
mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0');
mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5);
mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'my_db', null, null, MYSQLI_CLIENT_COMPRESS|MYSQLI_CLIENT_FOUND_ROWS);
echo 'Success... ' . mysqli_get_host_info($link) . "\n";Горните примери ќе дадат излез:
Success... MySQL host info: localhost via TCP/IP
Белешки
Забелешка:
MySQLnd секогаш претпоставува стандарден сет на знаци на серверот. Овој сет на знаци се испраќа за време на ракувањето/автентикацијата на врската, што mysqlnd ќе го користи.
Libmysqlclient го користи стандардниот сет на знаци поставен во my.cnf или со експлицитен повик до mysqli_options() пред да се повика mysqli_real_connect(), но по mysqli_init().
Види Исто така
- mysqli_connect() - Псевдоним на mysqli::__construct
- mysqli_init() - Отворете нова врска со MySQL серверот
- mysqli_options() - Постави опции
- mysqli_ssl_set() - Се користи за воспоставување сигурни конекции со помош на SSL
- mysqli_close() - Враќа опис на последната грешка при поврзување