Segítségével OEM php
OEM rövidítés a PHP Data Objects. Ez a kiterjesztés biztosít számunkra, az adatbázisokhoz való hozzáférést tárgyak segítségével. És nézzük meg részletesen ebben a cikkben, hogyan kell dolgozni ezt a kiterjesztést, hogy a jó és a rossz. Wellcome.
Mielőtt elkezd beszélni az OEM, lássuk, mit nem vagyunk elégedettek mysql és mysqli. Nos, mysql nem teljesül, még az a tény, hogy már bejelentette elavult, és az új verzió nem támogatott. MySQLi - egy új kiterjesztés, amely számos előnnyel jár, hogy elődje, és mysql működik, de ... Ha egy új projekt beindításához, és válassza ki, mit kell használni: mysqli vagy OEM, ki kell választania az OEM és ezért.
Először is, a PHP alkalmazások váltak objektum-orientált, és végrehajtja az OEM objektum-orientált megközelítés, hogy dolgozik adatbázisokkal. Ez nagyban megkönnyíti a kód, skálázhatóság és támogatás, valamint szabványosított, hogy úgy mondjam. Másodszor, és ami még fontosabb, OEM - magas szintű interfészt az adatbázis eléréséhez, de nem feltétlenül a MySQL. OEM támogat különböző adatbázisok: MySQL, PostgreSQL, SQLite, MSSQL és mások. Ha egy szép reggelen úgy dönt, hogy a MySQL a PostgreSQL, akkor ki kell cserélni minden csak egy sort, hanem átírta a teljes kódot. Harmadszor, az OEM olyan dolog, mint a „kötődés” beállításokat. Következő, megtudhatja, mi az. Eddig csak azt mondani, hogy ez megkönnyíti a „design” komplex lekérdezések és dinamikusan védelmet nyújt az SQL-injection.
Beállítása adatbázis kapcsolat
Ahhoz, hogy létrejöjjön a kapcsolat az adatbázis segítségével OEM, meg kell elindítani a PDO objektumot az alábbiak szerint:
A kivitelező három paramétert:
- Az úgynevezett dsn húr. Úgy van beállítva, hogy csatlakoztassa a járművezető az adatbázisok, host, adatbázis nevét, és a kódolást.
- bejelentkezés
- jelszó
Ezzel szemben a szokásosnál mysql_query (vagy mysqli_query), az OEM lekérdezésre, két módszer létezik: az egyik alkalmazott visszaadó lekérdezések eredményeként (válasszon, show), a második - a lekérdezés nem ad vissza találatot (insert, update, delete ...) .
lekérdezése
Itt egy egyszerű példa az adatok behelyezés:
Itt van, amit lehetséges értékei:
- OEM. FETCH_ASSOC - visszaadja egy asszociatív tömbben. A fenti példában, hogy az id használni kívánt $ row [ „id”]
- OEM. FETCH_NUM - visszaadja egy rendezett tömbben. A fenti példában, hogy az id használni kívánt $ row [0];
- OEM. FETCH_OBJ - visszaadja egy objektum. Id hívás $ row -> id;
- OEM. FETCH_CLASS - visszaadja egy példánya ennek az osztálynak előre, és a kiválasztott adatokat (asztal területén az adatbázis) egyezik a megfelelő mezők (tulajdonságok) az osztály.
Megjegyzés: Javasoljuk, hogy mindig adja FETCH_MODE, különben FETCH_BOTH lesz látható alapértelmezés szerint, ami azt jelenti, hogy az adatok lesznek két változatban kapható, mint egy asszociatív tömböt, és szabályos elrendezésben, hogy fogyaszt, pontosan 2-szer több memóriát.
Bizonyára Ön is észrevette, állandó FETCH_CLASS. Igen, ez egy szuper lehetőség. Nézzük meg közelebbről.
Tegyük fel, hogy a mi osztály Felhasználó:
Ha hívjuk a felkészülés () metódus, OEM feldolgozza a kérést, és a tartalmát tárolja a jövőben is. Amikor a mi sorozat, akkor ismét hívja az execute (), a kérelmet nem jön létre. Mi csak helyettesíti az új értéket. Mint már mondtam, ez pozitív hatással van a teljesítményére alkalmazásokat.
Az is előfordulhat, hogy észrevette, hogy én használtam fetchColumn () metódust, amely nem mond semmit. Az idő elérkezett. Ez a módszer értékét adja vissza az első mezőt. Ez nagyon kényelmes, amikor végre kell hajtania a count (), sum (), min (), max () és más hasonló kérdések.
Binding értékeket az IN záradék
Sok programozó, aki először szembesül OEM és eléri a helyzet állapotokban () előtt álló problémákat. Képzeljük el, hogy már össze egy sor vesszővel elválasztott értékeket aydishnikov számára, akik szeretnék kijutni a bázis.