logo

Въведение в PHP PDO

PHP е скриптов език с общо предназначение с отворен код, който се използва широко за създаване на динамични и интерактивни уеб страници. PHP има достъп до голям набор от системи за управление на релационни бази данни, като напр MYSQL, SQLite , и PostgreSQL . The PHP 5.1 версия предлага нова библиотека за абстракция на връзка с база данни, която е PHP обекти от данни (ЗНП).

Какво е PDO?

PDO се отнася за Обект на PHP данни , което е PHP разширение, което дефинира лек и последователен интерфейс за достъп до база данни в PHP. Това е набор от PHP разширения, които предоставят основен PDO клас и специфичен за базата данни драйвер. Всеки драйвер на база данни може да изложи специфични за базата данни характеристики като обикновена функция за разширение, която имплементира PDO интерфейса.

Забележка: Не можем да изпълняваме никакъв тип функция на база данни, като използваме самото PDO разширение. За достъп до сървър на база данни трябва да използваме специфичен за базата данни PDO драйвер.

PDO се фокусира главно върху абстракцията на достъпа до данни, а не върху абстракцията на базата данни. Осигурява абстракционен слой за достъп до данни , което означава, че независимо коя база данни използваме, трябва да използваме същите функции, предоставени от тази база данни, за да подаваме заявки и да извличаме данни. PDO не осигурява абстракция на данни, тъй като не пренаписва SQL или емулира липсващи функции.

Предимство на PDO

PDO предоставя различни начини за работа с обекти и извлича подготвени изрази, които правят работата много по-лесна. Това е инструмент за достъп до база данни в PHP, чрез който позволяваме еднакъв достъп до няколко бази данни.

PDO позволява сравнително безпроблемно превключване между различни бази данни и платформи, което може лесно да се направи чрез промяна на низа за връзка. Не поддържа специфичен за базата данни синтаксис.

суматор пълен суматор

Има някои предимства на PDO, както следва:

низ към цели числа
    Поддръжка на бази данни
    PDO разширението има достъп до всяка база данни, която е написана за PDO драйвер. Има няколко налични PDO драйвера, които се използват за FreeTDS, Microsoft SQL Server, Sybase, IBM DB2, Oracle Call Interface, Firebird/Interbase 6 , и PostgreSQL бази данни, сред много други.
    Драйверите не са налични във всяка система автоматично, така че трябва да намерим нашите налични драйвери и да добавим такива, когато имаме нужда от тях.Свързване с база данни
    Има различни налични синтаксиси за установяване на връзка с база данни. Тези синтаксиси зависят от конкретни бази данни. Докато използвате PDO, операциите трябва да бъдат обвити в блокове try/catch и да използват техниката на изключение.
    Обикновено трябва да се създаде само една връзка и тези връзки се затварят чрез програмиране на базата данни да се зададе като нула.Обработка на грешки
    PDO позволява да се използват изключения за обработка на грешки. За да създаде изключение, PDO може да бъде принуден да влезе в съответен атрибут на режим на грешка.
    Има три режима на грешка, т.е. Безшумен (по подразбиране), Внимание , и Изключение . Предупреждението и Изключението са по-полезни при DRY програмиране.
      Безшумен- Това е режим на грешка по подразбиране.Внимание- Полезно е за отстраняване на грешки.Изключение- Този режим позволява грациозно обработване на грешки, като същевременно крие данни, които човек може да използва, за да използва вашата система.
    Вмъкване и актуализиране
    PDO намалява често използваната операция за вмъкване и актуализиране на база данни в процес от две стъпки, т.е.
    Подгответе >> [Bind] >> Изпълнете.
    Чрез този метод можем да се възползваме напълно от подготвените оператори на PDO, които защитават срещу злонамерени атаки чрез SQL инжектиране.
    Подготвените изрази са предварително компилирани SQL изрази, които могат да бъдат изпълнени многократно чрез изпращане на тези данни към сървъра. Тези данни, които се използват в рамките на контейнера, автоматично се защитават от атаката чрез SQL инжектиране.

Ползи от използването на PDO

PDO е родният драйвер на базата данни. Има някои предимства от използването на PDO, които са дадени по-долу:

    Използваемост- Съдържа много помощни функции за извършване на автоматични рутинни операции.Повторна употреба- Предлага унифициран API за достъп до множество бази данни.Сигурност- Използва подготвен оператор, който предпазва от SQL инжектиране. Подготвеният израз е предварително компилиран SQL оператор, който разделя инструкцията на SQL оператора от данните.

PDO класове

Има три PDO класа, които са дадени по-долу:

    PDO- Представлява връзка между PHP и базата данни.PDOStatement- Представлява подготвения оператор и след изпълнението на оператора задава асоцииран резултат.PDOException- Представлява грешки, повдигнати от PDO.

Бази данни, поддържани от PDO

  1. MySQL
  2. PostgreSQL
  3. Оракул
  4. Жар птица
  5. MS SQL сървър
  6. Sybase
  7. Informix
  8. IBM
  9. FreeTDS
  10. SQLite
  11. Кубрид
  12. 4D

Сравнение между PDO и MySQLi

За достъп до базата данни чрез PHP имаме основно две опции - MySQLi и PDO (PHP Data Object). MySQLi е роден за PHP, който осигурява по-бърза производителност, докато повечето от опитните разработчици предпочитат да работят с PDO, тъй като поддържа голямо разнообразие от драйвери за бази данни. Има някои разлики между PDO и MySQLi, изброени по-долу въз основа на техните характеристики.

Характеристика PDO MySQLi
Поддръжка на DB 12 различни драйвера Само MySQL
Връзка лесно лесно
API ОТВОРЕНО OOP + Процедура
производителност Бърз Бърз
Наименуван параметър да Не
Картографиране на обекти да да
Съхранена процедура да да
Подготвени отчети от страна на клиента да Не
Сигурност По-сигурен от MySQLi. Сигурно, но не повече от PDO.

Кое трябва да се предпочита между PDO или MySQLi?

Както PDO, така и MySQLi имат своите предимства:

  • Както видяхме по-рано, PDO работи на 12 различни системи от бази данни, докато MySQL може да работи само с MySQL база данни. Така че, ако искаме да превключим нашия проект към друга база данни, PDO ни улеснява. В MySQLi трябва да пренапишем целия код.
  • И PDO, и MySQLi са обектно-ориентирани, но MySQLi предлага и процедурен API. И двете поддържат Подготвени отчети. Подготвените отчети са важни за сигурността на уеб приложенията, тъй като предпазват от SQL инжектиране.

Изискване

Няма нужда от външни библиотеки за изграждане на това разширение.

клас на java скенер

Процес на инсталиране

Етап 1: Изтеглете най-новия XAMPP сървър от тук https://www.apachefriends.org/download.html за различни платформи като Windows, Linux и MacOS.

Phppdo

Забележка: Тук ще обсъдим процеса на инсталиране само за Windows OS.

Стъпка 2: Инсталирайте XAMPP сървъра на вашата система, като следвате тези стъпки.

Phppdo

Стъпка 3: Изберете компонентите, които искате да инсталирате и щракнете върху бутона Напред.

Phppdo

Стъпка 4: Създайте новата папка с името xampp на мястото, където искате да инсталирате XAMPP.

Phppdo

Стъпка 5: Кликнете върху Напред тук и продължете напред. Инсталирането на XAMPP сървъра ще започне от тук.

Phppdo

Стъпка 6: XAMPP е инсталиран успешно. Кликнете върху бутона Край.

Phppdo

Стъпка 7: Изберете предпочитания език.

Phppdo

Стъпка 8: Стартирайте сървъра Apache и MySQL от тук (съгласно дадения екран).

Phppdo

Стъпка 9: Сега отворете php.ini от C:/xampp/php/php.ini (където сте инсталирали вашия XAMPP) и разкоментирайте разширението 'php_pdo_mysql.dll' и 'php_pdo.dll' (ако работите с MySQL база данни), или 'php_pdo_oci.dll' (ако работите с база данни на Oracle). Сега започнете да работите с базата данни. В по-горната версия на PHP 5.1 той вече е зададен.

приложения за облачни изчисления

Работа със ЗНП

Първо трябва да създадем база данни, така че създайте база данни с име myDB от тук.

Phppdo

Връзка с база данни

Винаги е необходима връзка с база данни за взаимодействие с базата данни. Така че трябва да знаем идентификатора за достъп до базата данни, т.е. местоположението на базата данни, име на базата данни, потребителско име и парола.

Сега създайте програмата за свързване на базата данни, като използвате PDO във всеки текстов редактор като notepad или notepad++ и я запазете с име coonection.php. Стартирайте го на XAMPP сървър, като използвате localhost/80.

линукс файлова система

Пример

 getMessage(); } ?> 

Изход

Стартирайте го на сървъра, като използвате следния URL адрес localhost/Xampp/pdoexample/connection.php/ или къде сте записали вашата програма.

Phppdo

Грешка при обработка на връзката

Обект PDOException ще бъде хвърлен, ако има грешка във връзката. Може да хванем изключението, ако искаме да обработим условието за грешка, или можем също да го оставим на глобалния манипулатор на изключения, който може да бъде настроен от set_exception_handler() функция.

Пример

В този пример dbUser(user-id) е грешен, така че ще хвърли изключение, както можем да видим в изхода.

 setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); Echo 'Successfully connected with myDB database'; } catch(Exception $e){ Echo 'Connection failed' . $e->getMessage(); } ?> 
Phppdo

Затваряне на връзката с базата данни

 getMessage(); } // this command close the connection. $dbConn = null; ?> 

Изход

Phppdo