Поврзувања
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Поврзувања
Референца за `mysqli.quickstart.connections.php` со подобрена типографија и навигација.
Поврзувања
The MySQL server supports the use of different transport layers for connections. Connections use TCP/IP, Unix domain sockets or Windows named pipes.
MySQL серверот поддржува употреба на различни транспортни слоеви за конекции. Конекциите користат TCP/IP, Unix доменски сокети или Windows именувани цевки. localhost Името на домаќинот 127.0.0.1 има посебно значење. Тоа е поврзано со употребата на Unix доменски сокети. За да се отвори TCP/IP конекција до localhost, localhost.
мора да се користи наместо името на домаќинот
<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
echo $mysqli->host_info . "\n";
$mysqli = new mysqli("127.0.0.1", "user", "password", "database", 3306);
echo $mysqli->host_info . "\n";Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
Localhost via UNIX socket 127.0.0.1 via TCP/IP
Пример #1 Посебно значење на localhost
Стандардни вредности на параметрите за конекција
Во зависност од користената функција за конекција, може да се изостават различни параметри. Ако не е обезбеден параметар, тогаш екстензијата се обидува да ги користи стандардните вредности поставени во конфигурациската датотека на PHP.
mysqli.default_host=192.168.2.27 mysqli.default_user=root mysqli.default_pw="" mysqli.default_port=3306 mysqli.default_socket=/tmp/mysql.sock
Пример #2 Поставување стандардни вредности
Резултирачките вредности на параметрите потоа се предаваат на библиотеката на клиентот што ја користи екстензијата. Ако библиотеката на клиентот открие празни или непоставени параметри, тогаш може да се врати на вредностите вградени во библиотеката.
Стандардни вредности на вградената библиотека за конекција localhostАко вредноста на домаќинот е непоставена или празна, тогаш библиотеката на клиентот ќе се врати на Unix сокет конекција на /tmp/mysql.sock
. Ако сокетот е непоставен или празен, и се бара Unix сокет конекција, тогаш се обидува конекција до стандардниот сокет на
се обидува. . На Windows системи, името на домаќинот
\\.\pipe\MySQL.
се толкува од библиотеката на клиентот како обид за отворање конекција базирана на Windows именувани цевки. Во овој случај, параметарот socket се толкува како име на цевката. Ако не е даден или е празен, тогаш сокетот (име на цевката) стандардно се поставува на 3306.
На mysqlnd Ако не се воспостави ниту Unix доменска сокет базирана ниту Windows именувана цевка базирана конекција и вредноста на параметарот port е непоставена, библиотеката стандардно ќе го постави портот
библиотеката и MySQL Client Library (libmysqlclient) применуваат иста логика за одредување на стандардните вредности.
Опции за конекција
Опциите за конекција се достапни за, на пример, поставување на иницијални команди кои се извршуваат при конекција, или за барање употреба на одреден карактер сет. Опциите за конекција мора да бидат поставени пред да се воспостави мрежна конекција. mysqli_init() or API не вклучува емулација за емулација на подготвени изјави од страна на клиентот., поставувајќи ги бараните опции со Пример #5 Оригинални типови на податоци со mysqlnd и опција за поврзување, и воспоставувајќи ја мрежната врска со mysqli::options().
Базени на врски
Екстензијата mysqli поддржува постојани врски со базата на податоци, што е посебен вид на врски во базен. Стандардно, секоја врска со базата на податоци отворена од скрипта или експлицитно се затвора од корисникот за време на извршувањето или автоматски се ослободува на крајот од скриптата. Постојаната врска не е. Наместо тоа, се става во базен за подоцнежна повторна употреба, ако се отвори врска со истиот сервер користејќи го истото корисничко име, лозинка, приклучок, порта и стандардна база на податоци. Повторната употреба заштедува трошоци за поврзување.
Секој PHP процес користи свој базен за врски mysqli. Во зависност од моделот на распоредување на веб-серверот, PHP процес може да опслужува едно или повеќе барања. Затоа, врска во базен може да се користи од една или повеќе скрипти последователно.
Постојана врска
Ако не се најде неискористена постојана врска за дадена комбинација на хост, корисничко име, лозинка, приклучок, порта и стандардна база на податоци во базенот за врски, тогаш mysqli отвора нова врска. Употребата на постојани врски може да се овозможи и оневозможи со помош на PHP директивата mysqli.allow_persistent. Вкупниот број на врски отворени од скрипта може да се ограничи со mysqli.max_links. Максималниот број на постојани врски по PHP процес може да се ограничи со mysqli.max_persistent. Ве молиме имајте предвид дека веб-серверот може да создаде многу PHP процеси.
Честа поплака за постојаните врски е дека нивната состојба не се ресетира пред повторна употреба. На пример, отворените и недовршените трансакции не се враќаат автоматски. Но, исто така, промените во овластувањата што се случиле помеѓу ставањето на врската во базен и нејзината повторна употреба не се рефлектираат. Ова може да се смета за несакан нус-ефект. Напротив, името persistent може да се сфати како ветување дека состојбата е зачувана.
Екстензијата mysqli поддржува двете толкувања на постојана врска: зачувана состојба и ресетирање на состојбата пред повторна употреба. Стандардно е ресетирање. Пред да се повторно искористи постојана врска, екстензијата mysqli имплицитно повикува MySQL серверот поддржува употреба на различни транспортни слоеви за конекции. Конекциите користат TCP/IP, Unix доменски сокети или Windows именувани цевки. за да ја ресетира состојбата. Постојаната врска се појавува на корисникот како да е штотуку отворена. Нема видливи артефакти од претходните употреби.
На MySQL серверот поддржува употреба на различни транспортни слоеви за конекции. Конекциите користат TCP/IP, Unix доменски сокети или Windows именувани цевки. повикот е скапа операција. За најдобра изведба, корисниците можеби сакаат повторно да ја компилираат екстензијата со компајлирачкиот флаг MYSQLI_NO_CHANGE_USER_ON_PCONNECT да биде поставен.
Оставено е на корисникот да избере помеѓу безбедно однесување и најдобра изведба. И двете се валидни цели за оптимизација. За леснотија на користење, безбедното однесување е направено стандардно на сметка на максималната изведба.
Види исто така
- API не вклучува емулација за емулација на подготвени изјави од страна на клиентот.
- mysqli_init()
- Пример #5 Оригинални типови на податоци со mysqlnd и опција за поврзување
- mysqli::options()
- MySQL серверот поддржува употреба на различни транспортни слоеви за конекции. Конекциите користат TCP/IP, Unix доменски сокети или Windows именувани цевки.
- $mysqli::host_info
- MySQLi Опции за конфигурација
- Упорни врски со базата на податоци