BOB en mysqli: als u met?

, BOB en mysqli: als u met?,,,,,,,,,, 297, aandelen, 169,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen.,, wanneer de toegang tot een databank in PHP, we hebben twee opties: mysqli en BOB.Dus bij de keuze van een eerder, weet je wat?De verschillen tussen de steun en de database, de stabiliteit en de prestaties van dit document zal een overzicht worden gegeven van het probleem,.,,,,,,,,,, samengevat, BOB, mysqli, gegevensbank, 12 verschillende rijden van mysql, API 's, gerichte, verband, makkelijk, genaamd parameters, is geen object in kaart te brengen. Ja, klaar voor de verklaring (klant), of de prestaties van een snelle procedure,,,,,,, ja, het is makkelijk, gekoppeld aan een met deze database:,, ///////bob bob = dollar nieuwe BOB (mysql: gastheer = plaatselijke gegevensbank van Peking ","; gebruikersnaam is "," de code "); ///////mysqli, procedures ('localhost mysqli = mysqli_connect dollar,'username",'password "gegevensBasis "); ///////mysqli, gerichte methode voor de mysqli = nieuwe mysqli ('localhost",'username ",'password",'database ");,, let op, deze verbinding object /middelen wordt beschouwd als de rest van de door deze handleiding bestaat.,,,, - steun voor BOB 's en mysqli twee. Om een object van de API, maar mysqli voorziet ook in een procedure voor de API - en dat maakt het voor hen gemakkelijker te begrijpen.Als je bekend bent met de PHP mysql chauffeur, je vindt immigratie mysqli interface procedures te vergemakkelijken.Aan de andere kant, als je meester BOB, je kan de database gebruik wat je wilt.,,,,,,, databanken, in de kern van de mysqli BOB is het voordeel van de database van ondersteuning van de bestuurder.In dit schrijven, Bob steun 12 verschillende chauffeurs, tegen de mysqli ter ondersteuning van mysql,,.,, het drukken van een lijst van alle BOB nu steun van de bestuurder, met de volgende code:,, var_dump (BOB: getavailabledrivers ()); en, wat betekent dit?Nou, in het geval van toen je over je project met een databank van het proces transparant, BOB.Dus, alles wat je moet doen, is een vraag in verband met de snaren veranderen en als ze gebruik maken van een - niet aan je nieuwe database.Het gebruik van mysqli, je moet het herschrijven van de code, elk stuk, vraag, met inbegrip van,,,,, dat is de naam, BOB is een ander belangrijk kenmerk van de parameters, in combinatie met is vrij eenvoudig, dan het gebruik van digitale integratie:,, $params = array (": een gebruikersnaam = > test", ": e e - = > $per e - mail": last_login "= > tijd () - 3600); $BOB (" > voorbereiding van de gebruikers de gebruikersnaam: een gebruikersnaam en een e - mail: e - mail last_login = en >: last_login "); $BOB > de tenuitvoerlegging - ($params);,, tegen mysqli...:,, $vraag = $mysqli - > voorbereiding van de gebruikers id = ("?En de e - mail =?En last_login >? ")Die vraag > bind_param ('sss "," test ", e - mail: $(), 3600); en onderzoek > het uitvoeren van (de);,, vraagteken parameters in combinatie met leek erg kort, maar het is bijna geen flexibele die parameter, omdat de projectontwikkelaars moeten altijd volgen; Het is van mening dat de volgorde van de parameters," in de in sommige gevallen, huck. "En, helaas, mysqli niet steunen die parameters,,,,,, ongeacht het doel in kaart te brengen, BOB en mysqli kan het in kaart brengen van de resultaten betreft.Dit is handig als je het niet wilt gebruiken, een gewoonte die database abstractie, maar nog steeds wil orm gedrag.Stel je eens voor, we hebben een, de gebruikers, de categorie een eigenschap, uit de database met de naam van het veld.,, categorie gebruikers (de identiteit first_name dollar; de openbare last_name dollar; de functie van Info () {terug #. "Dollar - > id.:". - $> first_name. "Dollar - > last_name;}}, geen object in kaart te brengen, we moeten het invullen van elk gebied waarde (met de hand of met de door de fabrikant) alleen kunnen worden gebruikt, en de juiste methode info (), dat laten we deze eigenschap in vooraf bepaalde objecten en zelfs structurele.Voor isntance:,, $query = "select id, first_name, van de gebruikers; ///////last_name" BOB $result = $pdo-> de vraag $query); $result-> setFetchMode (PDO:: FETCH_CLASS,'User'); terwijl ($user = $result-> fetch ()) (ECHO) $user-> info (. 'n ") ///////MySQLI; de procedurele weg, als $result = mysqli_query ($mysqli, $query)) {terwijl ($user = mysqli_fetch_object ($result,'User')) (ECHO) $user-> info (.' n"}}; ///////MySQLi, doel gerichte manier als ($result = $mysqli-> de vraag $query)) {terwijl ($user = $result-> fetch_object ('User')) (ECHO) $user-> info (. 'n "}};,,,,,,,,,,,,, dat SQL (volksgezondheid, veiligheid, net zo lang als de ontwikkelaar gebruikt ze de manier waarop zij waren bestemd, (read: /parame vluchtenHet bindende met opgesteld:).,,, Lets Hacker is proberen te zeggen a injecteer wat malicious SQL door de'username'http) ('), en die: $_GET['username'] = "; het schrappen van de gebruikers; /*", als we dit niet te ontsnappen, en het zal worden opgenomen in de vraag "als." - de schrapping van alle gebruikers, de rijen van de tabel (zowel, BOB en mysqli voor meerdere vragen) ///////.,, BOB, "handleiding" $username = PDO:: Waarom vluchten ($_GET['username']); $pdo-> vraag ("select * van de gebruikers een gebruikersnaam = $username"); ///////mysqli "handleiding" $username = mysqli_real_escape_string vluchten ($_GET['username']); $mysqli-> vraag ("select * van de gebruikers een gebruikersnaam ='$username'"), zoals je kan zien,,,, PDO:: waarom (), niet alleen escapes het touw, maar hetHet is genoemd, en aan de andere kant, mysqli_real_escape_string (), alleen ontsnappen. En je hand, vereist de toepassing van aanhalingstekens,. ///////PDO voorbereide verklaring als BOB > (* * * * * * *'select voor gebruikers, gebruikersnaam: gebruikersnaam); $BOB > de tenuitvoerlegging - (array (": een gebruikersnaam = > _get dollar ['username]); ///////mysqli, bereid verslag vraag = dollar mysqli - > voorbereiding ('select * van de gebruikersnaam =?")Die vraag > bind_param (ja, _get dollar'username "[]); en onderzoek > het uitvoeren van (de);,,, stel ik voor dat je altijd gebruiken in plaats van P, in combinatie met de vraag: waarom doen: voorbereiding van mysqli_real_escape_string () (),,,,,,,,,, en twee BOB mysqli is nogal snel, maar in het kader van de tenuitvoerlegging van mysqli benchmark - 2,5% sneller van niet - opstelling van de jaarrekening en de 6,5%, - voor te bereiden.Maar de uitbreiding van lokale van mysql, sneller dan dat.Dus, als je echt te druk voor elk punt van de prestaties, dat is een ding dat je kan overwegen,,, samengevat, en uiteindelijk, Bob gemakkelijk om deze strijd te winnen.De steun van de twaalf verschillende databanken bestuurder (18 verschillende databanken.En de naam van de parameters, kunnen we negeren verlies van prestaties, en het gebruik van het geneesmiddel.Uit een oogpunt van veiligheid, ze zijn veilig, zolang de ontwikkelaar gebruik te maken van hun gebruik moeten maken van de middelen (lees: de opstelling van de jaarrekening).,, dus als je nog steeds mysqli, misschien is het nu tijd voor verandering.,,





Previous:
Next Page: