MySQLi razširitev je gonilnik relacijske baze podatkov, ki se uporablja v skript-nem PHP jeziku za zagotavljanje vmesnika z MySQL bazami podatkov. Ko se želimo povezati z MySQL bazo podatkov preko PHP, za to obstajajo tri možnosti. Prva je razširitev MySQL, druga MySQLi razširitev in tretja podatkovni objekti (PDO). Mi se bomo osredotočili na srednjo možnost, ki je MySQLi, ki je izboljšana različica starejšega gonilnika PHP MySQL, ki ponuja različne prednosti. Razširitev gonilnika PDO, MySQL na primer ne izpostavlja API-ja PHP razvijalcu, ampak zagotavlja vmesnik do PDO sloja nad njim.
PHP koda je sestavljena iz jedra z neobveznimi razširitvami osnovne funkcionalnosti. PHP razširitve povezane z MySQL, kot sta razširitvi MySQLi in MySQL, so implementirane z uporabo ogrodja PHP razširitve. Razširitev običajno izpostavi API, PHP razvijalcu, da omogoči programsko uporabo njegovih zmogljivosti. Vendar pa nekatere razširitve, ki uporabljajo ogrodje PHP razširitve, ne izpostavljajo API-ja PHP razvijalcu. MySQLi razširitev ponuja različne prednosti glede na svojega predhodnika, med katerimi so najpomembnejše:
MySQLi razširitev ima dvojni vmesnik, ki podpira tako proceduralno kot objektno usmerjeno programsko paradigmo. Uporabniki, ki se selijo s stare MySQL razširitve, bodo morda raje uporabili proceduralni vmesnik (PDO). Proceduralni vmesnik je podoben vmesniku stare MySQL razširitve. V mnogih primerih se imena funkcij razlikujejo le po predponi. Nekatere MySQLi funkcije povezavo vzamejo kot svoj prvi argument, medtem ko so ga ustrezne funkcije v starem MySQL vmesniku vzele kot izbirni zadnji argument. Poglejmo si najprej novi in nato še stari izvorni klic funkcij:
<?php $mysqli = mysqli_connect("streznik", "uporabnik", "geslo", "baza_podatkov"); $rezultat = mysqli_query($mysqli, "SELECT * FROM tabela"); echo mysqli_num_rows($rezultat); $mysql = mysql_connect("streznik", "uporabnik", "geslo"); mysql_select_db("baza_podatkov"); $rezultat = mysql_query("SELECT * FROM tabela", $mysql); echo mysql_num_rows($rezultat); ?>
Ali je bolje uporabljati MySQLi ali PDO je vprašanje, ki si ga zastavljamo začetniki. Oba imata nekaj plusov in minusov. MySQLi je hitrejši, ampak zna delati samo in izključno z MySQL bazo podatkov, PDO lahko bere iz 12 različnih baz podatkov, tako, da čisto odvisno, za kaj potrebujemo. Ker jaz osebno PDO-ja ne potrebujem bom opisal delo z MySQLi in v prvem primeru si poglejmo, kako se povezati z MySQL:
<?php $streznik = "localhost"; $uporabniskoIme = "root"; //$geslo = "vpiši geslo"; // če uporabljamo geslo, moramo dodati še geslo $povezava = mysqli_connect($streznik, $uporabniskoIme); // preveri povezavo if (!$povezava) { die("Povezava je neuspešna: " . mysqli_connect_error()); } echo "Povezava je uspešna.";
Baza podatkov (CREATE DATABASE) | S PHP se lahko povežemo z bazami podatkov in jih upravljamo. | Glej primer |
---|---|---|
SQL tabela (CREATE TABLE) | Stavek CREATE TABLE se uporablja za ustvarjanje MySQL tabele. | Glej primer |
Vstavljanje podatkov (INSERT DATA) | Stavek INSERT INTO se uporablja za dodajanje novih zapisov v MySQL tabelo. | Glej primer |
Vstavljanje več podatkov naenkrat (INSERT MULTIPLE DATA) | Stavek mysqli_multi_query() izvrši več SQL stavkov naenkrat. | Glej primer |
Prikaz tabele (SELECT) | Stavek SELECT se uporablja za izbiro podatkov iz ene ali več tabel | Glej primer |
Zadnji vnos (LAST ID) | Ob posodabljanju ali novem vpisu v SQL tabelo, lahko pridobimo podatek zadnjega vpisanega vnosa. | Glej primer |
Pripravljene izjave (PREPARED STATEMENTS) | Pripravljeni stavki so način za izvajanje SQL poizvedb, ki izboljšajo varnost in učinkovitost. | Glej primer |
Iskanje vrednosti (WHERE) | Stavek WHERE poišče iskano vrednost v določeni tabeli in nam jo izpiše. | Glej primer |
Razvrščanje rezultatov (ORDER BY) | Klavzula ORDER BY se uporablja za razvrščanje nabora rezultatov. | Glej primer |
Brisanje (DELETE) | Stavek DELETE se uporablja za brisanje zapisov iz tabele. | Glej primer |
Posodobitev SQL tabele (UPDATE) | Stavek UPDATE se uporablja za posodobitev obstoječih zapisov v tabeli. | Glej primer |
Določanje števila zapisov (LIMIT) | MySQL nudi klavzulo LIMIT, ki se uporablja za določanje števila zapisov | Glej primer |