ODBC Функции
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ODBC Функции
Референца за `pdo.connections.php` со подобрена типографија и навигација.
ODBC Функции
Врските се воспоставуваат со креирање инстанци на основната класа PDO. Не е важно кој драјвер сакате да го користите; секогаш ја користите името на класата PDO. Конструкторот прифаќа параметри за специфицирање на изворот на базата на податоци (познат како DSN) и опционално за корисничкото име и лозинката (ако ги има).
Пример #1 Поврзување со MySQL
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>
Ако има грешки при поврзување, ќе биде фрлен PDOException
објект. Може да ја фатите исклучокот ако сакате да ја обработите состојбата на грешката, или може да одлучите да ја оставите за глобален обработувач на исклучоци на апликацијата што сте го поставиле преку
set_exception_handler().
Пример #2 Ракување со грешки при поврзување
<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
} catch (PDOException $e) {
// attempt to retry the connection after some timeout for example
}
Како и секој друг exception,
PDOException може да биде фатен експлицитно, преку catch изјава, или имплицитно преку set_exception_handler(). Инаку, стандардното однесување на конвертирање на нефатен исклучок во
E_FATAL_ERROR ќе се случи. Фаталната грешка ќе содржи бектрејс што може да протече детали за поврзувањето. Како такви, php.ini option
display_errors
треба да се постави на 0 на продукциски сервер.
По успешното поврзување со базата на податоци, инстанца на класата PDO се враќа во вашата скрипта. Врската останува активна за време на животниот век на тој PDO објект. За да ја затворите врската, треба да го уништите објектот со осигурување дека сите преостанати референци кон него се избришани—го правите ова со доделување null на променливата што го држи објектот. Ако не го направите ова експлицитно, PHP автоматски ќе ја затвори врската кога вашата скрипта ќе заврши.
Забелешка: Ако сè уште има други референци кон оваа PDO инстанца (како од PDOStatement инстанца, или од други променливи што ја реферираат истата PDO инстанца), тие исто така мора да се отстранат (на пример, со доделување
nullна променливата што ја реферира PDOStatement).
Пример #3 Затворање на врска
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// use the connection here
$sth = $dbh->query('SELECT * FROM foo');
// and now we're done; close it
$sth = null;
$dbh = null;
?>Многу веб апликации ќе имаат корист од воспоставување постојани врски со бази на податоци. Постојаните врски не се затвораат на крајот од скриптата, туку се кешираат и повторно се користат кога друга скрипта бара врска користејќи исти акредитиви. Кешот за постојани врски ви овозможува да ја избегнете тежината на воспоставување нова врска секогаш кога скрипта треба да комуницира со база на податоци, што резултира со побрза веб апликација.
Пример #4 Постојани врски
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
PDO::ATTR_PERSISTENT => true
));
?>
Вредноста на PDO::ATTR_PERSISTENT опцијата се претвора во bool (овозможување/оневозможување на постојани врски), освен ако не е не-нумеричка
string, во кој случај дозволува користење на повеќе бази на постојани врски. Ова е корисно ако различни врски користат некомпатибилни поставки, на пример, различни вредности на PDO::MYSQL_ATTR_USE_BUFFERED_QUERY.
Забелешка:
Ако сакате да користите постојани врски, мора да го поставите
PDO::ATTR_PERSISTENTво низата од опции на драјверот предадени на PDO конструкторот. Ако ја поставите оваа атрибут со Имајте предвид дека атрибутите специфични за драјверот по инстанцирањето на објектот, драјверот нема да користи постојани врски.
PDO не врши никакво чистење на постојаните врски. Привремените табели, заклучувања, трансакции и други промени на состојбата може да останат од претходната употреба на врската, предизвикувајќи неочекувани проблеми. Погледнете го Упорни врски со базата на податоци инструкции за инсталација
Забелешка:
Ако го користите PDO ODBC драјверот и вашите ODBC библиотеки поддржуваат ODBC Connection Pooling (unixODBC и Windows се две што го прават тоа; може да има и повеќе), тогаш се препорачува да не користите постојани PDO врски, и наместо тоа да го оставите кеширањето на врските на слојот ODBC Connection Pooling. ODBC Connection Pool се споделува со други модули во процесот; ако на PDO му се каже да ја кешира врската, тогаш таа врска никогаш нема да биде вратена во ODBC конекциониот базен, што резултира со создавање дополнителни врски за сервисирање на тие други модули.