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, които са дадени по-долу:
PDO класове
Има три PDO класа, които са дадени по-долу:
Бази данни, поддържани от PDO
- MySQL
- PostgreSQL
- Оракул
- Жар птица
- MS SQL сървър
- Sybase
- Informix
- IBM
- FreeTDS
- SQLite
- Кубрид
- 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.
Забележка: Тук ще обсъдим процеса на инсталиране само за Windows OS.
Стъпка 2: Инсталирайте XAMPP сървъра на вашата система, като следвате тези стъпки.
Стъпка 3: Изберете компонентите, които искате да инсталирате и щракнете върху бутона Напред.
Стъпка 4: Създайте новата папка с името xampp на мястото, където искате да инсталирате XAMPP.
Стъпка 5: Кликнете върху Напред тук и продължете напред. Инсталирането на XAMPP сървъра ще започне от тук.
Стъпка 6: XAMPP е инсталиран успешно. Кликнете върху бутона Край.
Стъпка 7: Изберете предпочитания език.
Стъпка 8: Стартирайте сървъра Apache и MySQL от тук (съгласно дадения екран).
Стъпка 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 от тук.
Връзка с база данни
Винаги е необходима връзка с база данни за взаимодействие с базата данни. Така че трябва да знаем идентификатора за достъп до базата данни, т.е. местоположението на базата данни, име на базата данни, потребителско име и парола.
Сега създайте програмата за свързване на базата данни, като използвате PDO във всеки текстов редактор като notepad или notepad++ и я запазете с име coonection.php. Стартирайте го на XAMPP сървър, като използвате localhost/80.
линукс файлова система
Пример
getMessage(); } ?>
Изход
Стартирайте го на сървъра, като използвате следния URL адрес localhost/Xampp/pdoexample/connection.php/ или къде сте записали вашата програма.
Грешка при обработка на връзката
Обект 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(); } ?>
Затваряне на връзката с базата данни
getMessage(); } // this command close the connection. $dbConn = null; ?>
Изход