MySQLi je izboljšana različica starejšega MySQL gonilnika. Omogoča nam dostop do MySQL baz podatkov na dva načina: proceduralno (s funkcijami) in objektno. V tej vadnici se bomo osredotočili na proceduralni način, saj je najbolj primeren in tiste, ki se selijo s starejših sistemov.
MySQLi razširitev ponuja številne izboljšave v primerjavi s starim MySQL vmesnikom. Glavne prednosti so:
| Lastnost | MySQLi | PDO |
|---|---|---|
| Podpora bazam | Samo MySQL | 12 različnih baz |
| Način dela | Proceduralni in objektni | Samo objektni |
| Pripravljeni stavki | Da | Da (tudi poimenovani) |
| Hitrost | Nekoliko hitrejši (za MySQL) | Nekoliko počasnejši |
Pri MySQLi povezavi preverimo uspeh s funkcijo mysqli_connect_error().
Če gre kaj narobe, funkcija vrne opis napake, kar nam pomaga pri hitrem odpravljanju
težav med razvojem.
Spodaj je seznam ključnih ukazov, ki jih bova obdelala v tej vadnici. Vsak ukaz vključuje interaktivni primer, kjer lahko preizkusiš PHP kodo in opazuješ, kako se spreminja vsebina v najinem simulatorju.
| Ukaz / Metoda | Opis delovanja | Primeri |
|---|---|---|
CREATE DATABASE |
Ustvari novo bazo podatkov na strežniku. | ▶ Primer kode |
CREATE TABLE |
Ustvari novo tabelo z določenimi stolpci v bazi. | ▶ Primer kode |
INSERT INTO |
Vstavi posamezen zapis v izbrano tabelo. | ▶ Primer kode |
INSERT MULTIPLE |
Vstavljanje več vrstic podatkov z enim samim ukazom. | ▶ Primer kode |
SELECT |
Pridobi in prikaže podatke iz tabele. | ▶ Primer kode |
LAST ID |
Pridobi ID številko zadnjega vstavljenega zapisa. | ▶ Primer kode |
PREPARED |
Pripravljeni stavki za varno delo z bazo. | ▶ Primer kode |
WHERE |
Filtriranje podatkov glede na določene pogoje. | ▶ Primer kode |
ORDER BY |
Razvrščanje rezultatov (npr. po abecedi ali datumu). | ▶ Primer kode |
DELETE |
Brisanje določenih zapisov iz tabele. | ▶ Primer kode |
UPDATE |
Posodabljanje obstoječih podatkov v tabeli. | ▶ Primer kode |
REPLACE |
Zamenja obstoječi zapis ali vstavi novega, če ta še ne obstaja. | ▶ Primer kode |
LIMIT |
Omejitev števila vrstic, ki jih želimo prikazati. | ▶ Primer kode |
V spodnji tabeli se nahaja pregled najpomembnejših PHP MySQLi funkcij in konstant. Za vsako funkcijo si lahko ogledate podroben opis in pripravljen primer kode – preprosto kliknite na gumb v desnem stolpcu, ki vam bo odprl modalno okno s primerom, prilagojenim za naš interaktivni simulator.
| Ime funkcije / Konstante | Opis delovanja | Primer v simulatorju |
|---|---|---|
mysqli_affected_rows() |
Vrne število prizadetih vrstic v zadnji poizvedbi (SELECT, INSERT, UPDATE, DELETE). Odlično za preverjanje uspešnosti operacij. | ▶ Primer kode |
MYSQLI_ASSOC |
Konstanta za asociativni način branja podatkov. Omogoča dostop do podatkov preko imen stolpcev
(npr. $vrstica['sadez']). |
▶ Primer kode |
MYSQLI_ASYNC |
Konstanta, ki omogoča asinhrono izvajanje poizvedb brez čakanja na odgovor strežnika. | ▶ Primer kode |
mysqli_autocommit() |
Vklopi ali izklopi samodejno shranjevanje (commit) sprememb v bazi podatkov. | ▶ Primer kode |
mysqli_begin_transaction() |
Varno započne novo podatkovno transakcijo (izklopi autocommit). | ▶ Primer kode |
mysqli_change_user() |
Spremeni aktivnega uporabnika in privzeto bazo za trenutno odprto povezavo. | ▶ Primer kode |
mysqli_character_set_name() |
Vrne privzeti nabor znakov (charset), ki se trenutno uporablja za povezavo. | ▶ Primer kode |
mysqli_close() |
Zapre predhodno odprto povezavo z bazo podatkov in sprosti vire. | ▶ Primer kode |
mysqli_commit() |
Potrdi in trajno shrani vse spremembe trenutne transakcije v bazo. | ▶ Primer kode |
mysqli_connect() |
Odpre novo povezavo z MySQL strežnikom. Osnova za vsako delo z bazo. | ▶ Primer kode |
mysqli_connect_errno() |
Vrne kodo napake iz zadnjega poskusa povezovanja s strežnikom. | ▶ Primer kode |
mysqli_connect_error() |
Vrne tekstovni opis napake iz zadnjega poskusa povezovanja. | ▶ Primer kode |
mysqli_data_seek() |
Premakne notranji kazalec rezultata na poljubno vrstico (npr. ponastavitev na 0). | ▶ Primer kode |
mysqli_debug() |
Izvaja napredne operacije razhroščevanja (debugging) za sledenje napakam. | ▶ Primer kode |
mysqli_dump_debug_info() |
Izpiše trenutne informacije o razhroščevanju direktno v sistemski dnevnik. | ▶ Primer kode |
mysqli_errno() |
Vrne numerično kodo zadnje napake pri izvedbi SQL ukazov. | ▶ Primer kode |
mysqli_error() |
Vrne besedilni opis zadnje napake pri izvedbi SQL poizvedbe. | ▶ Primer kode |
mysqli_error_list() |
Vrne seznam (matriko) vseh napak za zadnji izvedeni ukaz. | ▶ Primer kode |
mysqli_fetch_all() |
Pridobi vse vrstice rezultata naenkrat kot asociativno ali številsko polje. | ▶ Primer kode |
mysqli_fetch_array() |
Pridobi naslednjo vrstico rezultata kot kombinirano, številsko ali asociativno matriko. | ▶ Primer kode |
mysqli_fetch_assoc() |
Pridobi vrstico rezultata izključno kot asociativno polje (z imeni stolpcev). | ▶ Primer kode |
mysqli_fetch_field() |
Vrne informacije o naslednjem stolpcu (polju) v naboru rezultatov kot objekt. | ▶ Primer kode |
mysqli_fetch_field_direct() |
Vrne metapodatke za posamezno polje v naboru rezultatov kot objekt. | ▶ Primer kode |
mysqli_fetch_fields() |
Vrne matriko objektov, ki vsebujejo podrobne podatke o vseh stolpcih rezultata. | ▶ Primer kode |
mysqli_fetch_lengths() |
Vrne dolžine (število znakov) za vsak stolpec v trenutni vrstici rezultata. | ▶ Primer kode |
mysqli_fetch_object() |
Vrne trenutno vrstico nabora rezultatov kot objekt z lastnostmi. | ▶ Primer kode |
mysqli_fetch_row() |
Pridobi vrstico do katere dostopamo preko številčnih indeksov (od 0 naprej). | ▶ Primer kode |
mysqli_field_count() |
Vrne skupno število stolpcev, pridobljenih v zadnji izvedeni poizvedbi. | ▶ Primer kode |
mysqli_field_seek() |
Premakne kazalec stolpca na določen odmik (uporabno pri ročnem branju polj). | ▶ Primer kode |
mysqli_free_result() |
Sprosti zaseden sistemski pomnilnik, povezan z naborom rezultatov. | ▶ Primer kode |
mysqli_get_charset() |
Vrne celoten objekt z informacijami o trenutnem naboru znakov. | ▶ Primer kode |
mysqli_get_client_info() |
Vrne različico odjemalske knjižnice MySQL (tekstovni niz). | ▶ Primer kode |
mysqli_get_client_stats() |
Vrne podrobno statistiko o odjemalskih procesih in prenosu podatkov. | ▶ Primer kode |
mysqli_get_client_version() |
Vrne različico odjemalske knjižnice MySQL kot celo število (npr. 80212). | ▶ Primer kode |
mysqli_get_connection_stats() |
Vrne statistične podatke o odprti povezavi odjemalca s strežnikom. | ▶ Primer kode |
mysqli_get_host_info() |
Vrne ime gostitelja strežnika in vrsto uporabljene povezave (npr. TCP/IP). | ▶ Primer kode |
mysqli_get_proto_info() |
Vrne različico uporabljenega MySQL protokola. | ▶ Primer kode |
mysqli_get_server_info() |
Vrne različico MySQL strežnika, na katerega smo povezani. | ▶ Primer kode |
mysqli_get_server_version() |
Vrne različico MySQL strežnika kot celo število. | ▶ Primer kode |
mysqli_get_warnings() |
Pridobi opozorila (warnings) zadnje izvedene operacije na bazi. | ▶ Primer kode |
mysqli_info() |
Vrne dodatne tekstovne informacije o zadnji izvedeni poizvedbi. | ▶ Primer kode |
mysqli_init() |
Inicializira MySQLi objekt za uporabo z napredno funkcijo mysqli_real_connect(). |
▶ Primer kode |
mysqli_insert_id() |
Vrne samodejno ustvarjen ID (AUTO_INCREMENT) iz zadnje INSERT poizvedbe. | ▶ Primer kode |
mysqli_kill() |
Zahteva od strežnika, da nemudoma prekine določeno MySQL nit povezave. | ▶ Primer kode |
mysqli_more_results() |
Preveri, ali je na voljo še več naborov rezultatov pri verižnih poizvedbah. | ▶ Primer kode |
mysqli_multi_query() |
Izvede eno ali več povezanih SQL poizvedb hkrati, ločenih s podpičjem. | ▶ Primer kode |
mysqli_next_result() |
Pripravi in naloži naslednji nabor rezultatov iz verižnega ukaza
multi_query(). |
▶ Primer kode |
mysqli_num_rows() |
Vrne skupno število vrstic v naboru rezultatov (uporabno samo pri SELECT). | ▶ Primer kode |
mysqli_options() |
Nastavi dodatne, napredne možnosti in parametre za delovanje povezave. | ▶ Primer kode |
mysqli_ping() |
Preveri (pinga) odprto povezavo ali se poskuša znova samodejno povezati. | ▶ Primer kode |
mysqli_poll() |
Anketira asinhone poizvedbe in ugotavlja njihov status izvajanja. | ▶ Primer kode |
mysqli_prepare() |
Pripravi varen SQL stavek (Prepared Statement) za kasnejšo izvedbo s parametri. | ▶ Primer kode |
mysqli_query() |
Izvede posamezno SQL poizvedbo nad podatkovno bazo. Najpogosteje uporabljena funkcija. | ▶ Primer kode |
mysqli_real_connect() |
Vzpostavi napredno in varno povezavo z MySQL strežnikom po inicializaciji z
mysqli_init(). |
▶ Primer kode |
mysqli_real_escape_string() |
Zavaruje niz pred posebnimi znaki (SQL Injection) pred uporabo v poizvedbi. | ▶ Primer kode |
mysqli_real_query() |
Izvede surowo SQL poizvedbo brez avtomatskega varovanja rezultatov v spomin. | ▶ Primer kode |
mysqli_reap_async_query() |
Pridobi in vrne končni rezultat iz asinhrone SQL poizvedbe. | ▶ Primer kode |
mysqli_rollback() |
Prekliče (povrne) vse operacije trenutne transakcije in povrne prvotno stanje. | ▶ Primer kode |
mysqli_select_db() |
Zamenja aktivno (privzeto) podatkovno bazo za vse naslednje poizvedbe. | ▶ Primer kode |
mysqli_set_charset() |
Nastavi privzeti nabor znakov odjemalca (npr. nujno za pravilne šumnike:
utf8mb4). |
▶ Primer kode |
mysqli_set_local_infile_handler() |
Nastavi lastno funkcijo povratnega klica za obdelavo ukaza
LOAD DATA LOCAL INFILE. |
▶ Primer kode |
mysqli_sqlstate() |
Vrne standardno petznakovno kode SQLSTATE napake za zadnjo operacijo. | ▶ Primer kode |
mysqli_ssl_set() |
Nastavi poti do certifikatov za vzpostavitev šifrirane in varne SSL povezave. | ▶ Primer kode |
mysqli_stat() |
Vrne celoten trenutni status delovanja MySQL strežnika kot tekstovni niz. | ▶ Primer kode |
mysqli_stmt_init() |
Inicializira in vrne prazen objekt stavka, pripravljen za mysqli_stmt_prepare(). |
▶ Primer kode |
mysqli_stmt_store_result() |
Prenese nabor rezultatov iz pripravljenega stavka v lokalni pomnilnik. | ▶ Primer kode |
mysqli_store_result() |
Prenese in shrani celoten nabor rezultatov zadnje poizvedbe v lokalni spomin odjemalca. | ▶ Primer kode |
mysqli_thread_id() |
Vrne unikatno identifikacijsko številko (ID niti) za trenutno odprto povezavo. | ▶ Primer kode |
mysqli_thread_safe() |
Preveri in vrne podatek, ali je nameščena MySQLi knjižnica varna za večnitno delovanje. | ▶ Primer kode |
mysqli_use_result() |
Sproži branje nabora rezultatov neposredno iz strežnika vrstico po vrstico (brez shranjevanja vsega v RAM). | ▶ Primer kode |
mysqli_warning_count() |
Vrne število opozoril, ki so se sprožila med izvajanjem zadnje poizvedbe. | ▶ Primer kode |