PDO vs mysqli választani

összetett

Kapcsolódás adatbázishoz Mindkét opció:

Megjegyzendő, hogy ezek összefüggésben tárgyak / források továbbra is tekinthető létezőnek.







API támogatása

Mind OEM és MySQLi ajánlat objektumorientált API, de MySQLi is kínál procedurális megközelítést - megkönnyítve ezzel a kezdőknek, hogy megértsék. Ha ismeri a natív PHP driver MySQL, akkor könnyen megy eljárási MySQLi felületen. Másrészt, ha egyszer már elsajátította az OEM, akkor azt bármelyik bázis lehetséges.

adatbázis támogatás

PDO vs mysqli választani

A fő előnye az OEM felett MySQLi támogatja a különböző vezetők. Abban az időben az írás, az OEM támogatja a 12 különböző vezetők. Ellentétben MySQLi, mely csak a MySQL.

Megjeleníti az összes támogatott OEM járművezetők, használja az alábbi kódot:

Mit jelent ez? Azokban az esetekben, ahol a projekt úgy dönt, hogy változtatni az adatbázisban OEM, ez a folyamat átlátható lesz elég. Tehát, csak annyit kell tennünk. hogy módosítsa a kapcsolat húr, és néhány kérés, ha olyan módszereket alkalmaznak, amelyek nem támogatják az új adatbázist. MySQLi kell átírni minden kódsort - beleértve a kéréseket.

nevesített paraméterek

Ez egy másik fontos jellemzője az OEM; paraméter kötődés sokkal kényelmesebb. mint használ a számozás:

és most hasonló a MySQLi megközelítés:

A kötődési paramétereket kérdőjelek tűnhet rövid, de ez rugalmas, mint paramétereket is, mint a fejlesztő kell mindig szem előtt tartani a paraméterek sorrendjét.







Sajnos MySQLi nem támogatja nevesített paraméterek.

Bemutatás egy tárgy

Mind OEM és MySQLi képes megjeleníteni az eredményeket lekérdezések tárgyakat. Ez elég jó, ha nem szeretné, hogy további szintű adatbázis absztrakciós, de úgy néz ki, mint ORM-viselkedés. Képzeljük el, hogy van egy felhasználói osztály egyes tulajdonságok, amelyek megfelelnek a mezőnevek az adatbázisban.

Anélkül, hogy a kijelző egy tárgy, mi lett volna, hogy töltse minden területen (akár kézzel, akár a tervező), mielőtt tudnánk helyesen használni az info () metódust.

Ez lehetővé teszi számunkra, hogy meghatározza az ingatlan előtt létrejön az objektum! Például:

biztonság

PDO vs mysqli választani

Mindkét könyvtár védelmet nyújtanak SQL injection, amíg a fejlesztők használják őket rendesen (pajzs, használata paraméter kötelező, és kész lekérdezések)

Tegyük fel, hogy egy támadó megpróbálja beszúrni egy SQL keresztül GET paraméter „username” a kérelmet.

Ha nem fogunk vizsgálni, akkor be kell illeszteni a kérelmet a felhasználók törlése asztalra. mind OEM és mysqli támogatást több lekérdezést.

Mint látható, OEM :: quote (), nem csak megszökik a húr, de azt is hozzáteszi idézetek. Másrészt mysqli_real_escape_string () csak elfedi a sor, akkor meg kell adni magát meghatározni.

Azt tanácsolom, hogy mindig használja elkészített nyilatkozatok helyett OEM :: quote () és mysqli_real_escape_string ().

termelékenység

És OEM és MySQLi elég gyors munka, MySQLi tekintve valamivel nagyobb, mint körülbelül 2,5% képzetlen lekérdezések és körülbelül 6,5% az előkészített. Bár a natív MySQL kiterjesztés még gyorsabb, mint a két. Tehát, ha kell, hogy a legjobb teljesítményt, akkor lehet, hogy érdemes rá.

következtetés

Végül OEM könnyedén győzött ebben a küzdelemben. A támogatást a tizenkét különböző adatbázis meghajtók (18 különböző adatbázisok!) És a megnevezett paramétereket, nyugodtan figyelmen kívül hagyja a csekély veszteséget a teljesítmény. Egy biztonsági szempontból, mind a bővítmények biztonságos, ha a fejlesztő használja őket helyesen.

Tehát, ha még mindig dolgoznak MySQLi, talán itt az ideje változtatni!




Kapcsolódó cikkek