Računalniki Windows internet

Uporaba mysql v php. Osnove dela z MySQL v PHP. Povezava z bazo podatkov MySQL

MySQL je vrsta relacijske baze podatkov. MySQL je strežnik, na katerega se lahko povežejo različni uporabniki.

Ko se povežete z internetom, vnesete svoje uporabniško ime in geslo ter ime strežnika, na katerega se povezujete? Isti sistem se uporablja pri delu z MySQL.

Še ena točka: kaj je relacijska baza podatkov? Relacijska pomeni tabela. Znani Microsoftov urejevalnik preglednic Excel je pravzaprav urejevalnik relacijske baze podatkov.

Povezava s strežnikom MySQL

PHP uporablja funkcijo mysqli_connect () za povezavo s strežnikom MySQL. Ta funkcija zahteva tri argumente: ime strežnika, uporabniško ime in geslo.

Funkcija mysqli_connect () vrne identifikator povezave, shranjen je v spremenljivki in se kasneje uporablja za delo z bazami podatkov.

Koda povezave s strežnikom MySQL:

$ povezava = mysqli_connect ("localhost", "root", "");

V tem primeru delam za lokalni računalnik na Denwere, tako da je ime gostitelja localhost, uporabniško ime je root in ni gesla.

Po končanem delu z MySQL je treba tudi povezavo zapreti. Funkcija mysqli_close () se uporablja za zapiranje povezave. Razširitev primera:

$ link = mysqli_connect ("localhost", "root", ""); če (! $ povezava) die ("Napaka"); mysqli_close ($ povezava);

Tukaj smo preverili resnico identifikatorja povezave, če je z našo povezavo kaj narobe, se program ne bo izvajal, funkcija die () bo ustavila njegovo izvajanje in v brskalniku prikazala sporočilo o napaki.

Napake pri povezavi

Za preverjanje povezave se uporabljajo naslednje funkcije:

  • mysqli_connect_errno () - Vrne kodo napake zadnjega poskusa povezave. Vrne nič, če ni napak.
  • mysqli_connect_error () - Vrne opis zadnje napake pri povezovanju s strežnikom MySQL.
define ("HOST", "localhost"); define ("DB_USER", "root"); define ("DB_PASSWORD", ""); define ("DB", "tester"); $ povezava = mysqli_connect (HOST, DB_USER, DB_PASSWORD, DB); / * preveri povezavo * / if (mysqli_connect_errno ()) (printf ("Povezave ni bilo mogoče:% s \ n", mysqli_connect_error ()); exit ();) else (printf ("Povezave ni bilo mogoče:% s \ n ", mysqli_get_host_info ($ povezava));)

Mysqli_get_host_info () vrne niz, ki vsebuje vrsto uporabljene povezave.

Upoštevajte tudi, da sem z ukazom define shranil vse parametre povezave v konstante. Ko pišete velike projekte in bo na strežnik MySQL povezanih veliko datotek, je priročno, da parametre povezave shranite v ločeno datoteko in jo vstavite s funkcijo vključi ali zahteva.

Izbira baze podatkov

Na strežniku MySQL je lahko več baz podatkov. Najprej moramo izbrati podlago, ki jo potrebujemo za delo. PHP ima za to še en parameter v funkciji mysqli_connect () - ime baze podatkov.

Ustvaril sem ga na svojem računalniku prek phpMyAdmin z imenom tester. Nanj se povežemo:

$ povezava = mysqli_connect ("localhost", "root", "", "tester"); če (! $ povezava) die ("Napaka"); mysql_close ($ povezava);

Tako smo izbrali bazo podatkov za delo. A kot vemo, je relacijska baza podatkov sestavljena iz tabel, naša baza podatkov pa še nima tabel. Baza podatkov je ustvarjena prazna, tabel ni. Tabele ji je treba dodati ločeno. Dodajmo ji tabelo s pomočjo PHP.

Ustvari tabelo

V imenu baz podatkov MySQL je del SQL okrajšan za Structured Query Language, kar se prevaja kot jezik strukturiranih poizvedb. Vklopljeno jezik SQL pisali bomo poizvedbe in jih iz PHP programa poslali na strežnik MySQL.

Če želite ustvariti tabelo, moramo samo podati ukaz CREATE TABLE. Ustvarimo tabelo z imenom uporabniki, v katere stolpce bodo shranjene prijave (stolpec za prijavo) in gesla (stolpec gesla) uporabnikov.

$ query = "Ustvari uporabnike tabele (prijava VARCHAR (20), geslo VARCHAR (20))" ";

V tej kodi smo spremenljivki $ query dodelili niz besedila, ki predstavlja poizvedbo SQL. Ustvarimo tabelo z imenom uporabniki, ki vsebuje dva stolpca za prijavo in geslo, oba imata podatkovni tip VARCHAR (20). O podatkovnih vrstah bomo govorili kasneje, zaenkrat bom opozoril le, da je VARCHAR (20) niz z največjo dolžino 20 znakov.

Za pošiljanje naše poizvedbe strežniku MySQL uporabljamo funkcijo PHP mysqli_query (). Ta funkcija vrne pozitivno število, če je bila operacija uspešna, in napačno, če je prišlo do napake (sintaksa zahteve je napačna ali program nima dovoljenja za izvedbo zahteve).

$ povezava = mysqli_connect ("localhost", "root", "", "tester"); če (! $ povezava) die ("Napaka"); $ query = "USTVARI TABLE uporabnikov (prijava VARCHAR (20), geslo VARCHAR (20))"; mysqli_query ($ poizvedba); mysqli_close ($ povezava);

Poizvedbe SQL ni treba zapisati v spremenljivko, lahko jo zapišemo neposredno kot argument funkciji mysql_query (). Samo koda je videti bolj berljiva.

Ta skript ima eno pomanjkljivost - v brskalnik ne izpiše ničesar. Dodajmo sporočilo:

$ povezava = mysqli_connect ("localhost", "root", "", "tester"); če (! $ povezava) die ("Napaka"); $ query = "USTVARI TABLE uporabnikov (prijava VARCHAR (20), geslo VARCHAR (20))"; if (mysqli_query ($ query)) echo "Tabela je bila ustvarjena."; else echo "Tabela ni bila ustvarjena."; mysqli_close ($ povezava);

Če ta skript znova zaženemo za izvedbo, bomo v brskalniku videli sporočilo: "Tabela ni bila ustvarjena." Dejstvo je, da je bila tabela ustvarjena ob prvem zagonu in je nemogoče ponovno ustvariti tabelo z istim imenom. Soočamo se s situacijo napake, zato je čas, da se pogovorimo o ravnanju z napakami pri delu z MySQL.

Napaka pri obdelavi

Pri odpravljanju napak v programu bomo morda potrebovali natančne podatke o napaki. Ko pride do napake v MySQL, strežnik zbirke podatkov nastavi številko napake in niz, ki opisuje napako. PHP ima posebne funkcije za dostop do teh podatkov.

  • mysqli_errno () - Vrne številko napake.
  • mysqli_error () - Vrne niz, ki opisuje napako.

Zdaj dodajmo v naš skript funkcijo mysql_error ():

$ povezava = mysql_connect ("localhost", "root", "", "tester"); če (! $ povezava) die ("Napaka"); $ query = "USTVARI TABLE uporabnikov (prijava VARCHAR (20), geslo VARCHAR (20))"; if (mysqli_query ($ query)) echo "Tabela je ustvarjena."; else echo "Tabela ni ustvarjena:" .mysqli_error (); mysqli_close ($ povezava);

Zdaj bo naš skript vrnil vrstico v brskalnik: "Tabela ni bila ustvarjena: Tabela" uporabniki "že obstaja".

Spuščanje mize

Tako imamo zdaj mizo, ki je ne potrebujemo. Čas je, da se naučite brisati tabele iz baze podatkov.

Če želite spustiti tabelo, uporabite ukaz DROP TABLE, ki mu sledi ime tabele.

$ povezava = mysqli_connect ("localhost", "root", "", "tester"); če (! $ povezava) die ("Napaka"); $ query = "DROP TABLE users"; if (! mysqli_query ($ query)) echo "Napaka pri brisanju tabele:" .mysqli_error (); else echo "Tabela je bila izbrisana."; mysqli_close ($ povezava);

Rezultati

Tako smo obvladali osnove MySQL. Kaj smo se naučili narediti:

  • Povežite se z bazo podatkov MySQL s funkcijo mysqli_connect ().
  • Zaprite povezavo s strežnikom MySQL s funkcijo mysqli_close ().
  • Pošlji SQL poizvedba s na strežnik MySQL z uporabo funkcije mysqli_query ().
  • Naučili smo se SQL poizvedbe za ustvarjanje tabele: ustvari tabelo.
  • Izvedeli smo poizvedbo SQL, da spustimo tabelo: spustimo tabelo.
  • Naučili smo se ravnati z napakami s funkcijama mysqli_errno () in mysqli_error ().

Nato si bomo podrobneje ogledali podatkovne vrste MySQL.

Prebrali smo naslednjo lekcijo:

Svojo bazo sem poimenoval "phptest". Po kliku na gumb "Ustvari" se morate samodejno prenesti v bazo podatkov, ki ste jo ustvarili.

Ustvarite tabelo v bazi podatkov

Tudi v tem postopku ni nič zapletenega. Ustvarimo tabelo, v katero bomo shranili naslov naših člankov in samo besedilo:

Kot lahko vidite v številu polj sem dal številko 3, zakaj? Konec koncev moramo ustvariti dve polji, eno za naslov in besedilo. Bistvo je, da mora tabela v bazi podatkov imeti eno dodatno polje. Za kaj? To polje je nadomestno identifikacijsko številko, (to pomeni, da nekako štejemo svoje vrstice v tabeli), tako da dobimo edinstveno številko za vsako vrstico tabele. To je uporabno za iskanje niza, ki ga potrebujemo v bazi podatkov. To polje se običajno imenuje id in mu je izpostavljeno AUTO_INCREMENT(Spodaj bom pokazal, kje je razstavljen). AUTO_INCREMENT vam omogoča, da vsaki vrstici dodelite edinstveno številko, tako da v tabeli baze podatkov ne boste našli zapisa z isto številko!

po izpolnjevanju imena in števila polj pritisnite "V redu" pridemo na stran za ustvarjanje polj. Priznam vam, da res ne razumem, kaj počnem pri ustvarjanju polj, vendar mi to ne preprečuje dela z njimi. Izpolnite tako:

In izpolnite dve polji, ki ju potrebujemo:

Zakaj le dva? Ker bo prvo polje ID samodejno izpolnilo AUTO_INCREMENT. Kliknite "V redu". Zdaj lahko na zavihku "Pregled" vidite vrstico, ki smo jo ustvarili v tabeli:

No, naučili smo se ustvariti tabele in vrstice prek plošče phpmyadmin, to je že napredek. Mimogrede, želim opozoriti, da je vmesnik te plošče intuitiven, tam lahko preprosto potisnete gumbe in ugotovite, kaj je kaj

Čas je, da se naučite ustvariti vrstice za brisanje in posodabljanje v ustvarjenih tabelah s pomočjo php. Da boste bolje zaznali to, kar vam govorim, bomo napisali majhno skrbniško ploščo spletnega mesta, na poti pa vam bom povedal, kaj in kako.

Izpis zapisov iz baze podatkov

Začnimo s tem, saj morate pri ustvarjanju projekta vizualno videti postopek, brez izhoda pa je zelo težko narediti (delal bom z datoteko test.php, ne bodite presenečeni, ko vidite povezave do te datoteke v kodi). Kako se bomo umaknili? No, najprej se moramo povezati z bazo podatkov, po zanki do while (Learn PHP - Loops) bomo potegnili zapise iz baze podatkov. Začnimo

  • Povezava z bazo podatkov

Kako se vzpostavi povezava? Pozor na sintakso:

mysql_select_db (ime DB, mysql_connect (strežnik, uporabniško ime DB, geslo uporabnika DB));

Ime baze podatkov, uporabnika strežnika in geslo ustvarite vi ali jih zagotovi vaš gostitelj. Na primer lokalni strežnik, nekatere podatke ustvarite sami ali pa uporabite že ustvarjene. Takole bodo videti povezave z bazo podatkov, ki sem jo ustvaril:






// POVEZAVA Z BAZO PODATKOV (DB)

Strežnik, uporabnik in geslo so bili privzeto ustvarjeni (v tem primeru lahko rečemo, da nam skoraj vse podatke posreduje gostitelj). Iz svojih podatkov sem navedel samo ime baze. Mimogrede, to je koda php, zato mora biti v posebnih oklepajih ()

  • Izhod podatkov

Prikazati moramo podatke iz tabele strani. Pozornost na skladnjo izhoda:

$ result = mysql_query ("SELECT Če želite izvleči ime tabele FROM iz baze podatkov");

Prva vrstica nam omogoča, da določimo, katere stolpce moramo potegniti in iz katere baze podatkov.

Druga vrstica vse najde v spremenljivko ...

POZOR obstaja nekaj točk, ki bi jih rad pojasnil. Rešimo več težav:

  • Iz tabele moramo izvleči vsa polja.

Kako potegnem vsa polja iz tabele strani? Všečkaj to:

$ rezultat = mysql_query ("IZBERI * IZ stran");
$ myrow = mysql_fetch_array ($ rezultat);

Morda ste opazili, da sem za SELECT postavil zvezdico (*). Zvezdica pomeni, da moram ekstrahirati vsa polja iz tabele

  • Iz mize moramo izvleči samo eno polje

Kako izvleči samo besedilno polje iz tabele? Všečkaj to:

$ result = mysql_query ("IZBERI besedilo s strani");
$ myrow = mysql_fetch_array ($ rezultat);

Da ne izvlečete vseh polj, ampak le nekaj, je potrebno za SELECT navesti zahtevana polja, ločena z vejicami.

  • Polja moramo potegniti ne iz vseh tabel, ampak le iz ene vrstice

Kako izvlečem vsa polja iz prve vrstice? Vemo, da ima prva vrstica id enak eni, uporabimo to znanje:

Po SELECT sem razložil, katera polja je treba ekstrahirati, jih ločiti z vejicami in nato dodal novo vrstico WHERE (kar pomeni "kje") id je 1. Tako izvlečem polja, ki jih potrebujem, iz vrstice, kjer je id ena

No, začnimo ustvarjati rezultate naših člankov? Prikazali bomo samo glave, začnimo:


$ myrow = mysql_fetch_array ($ rezultat);

naredi
{
echo "". $ myrow."
";
}

kaj smo naredili? Iz tabele smo izvlekli dve polji, id in naslov. Nato smo začeli z zanko do while (Learning PHP - Loops) in oblikovali povezave z uporabo podatkov, ki smo jih odstranili iz baze podatkov. Podatki so shranjeni v spremenljivki $ myrow, ta spremenljivka je matrika, ključi matrike so imena naših polj v bazi podatkov. Evo, kaj se je zgodilo:

Obstaja izhod glav, zdaj pa organiziramo izpis celotnih sporočil, ko kliknete povezavo z glavo. Če želite to narediti v eni datoteki, dodajte pogoje if () ():

// POVEZAVA Z BAZO PODATKOV (DB)
$ nameDB = "phptest"; // Ime baze podatkov
$ nameSERVER = "localhost"; // Strežnik
$ nameUSER = "root"; // uporabniško ime baze podatkov
$ passUSER = ""; // Uporabniško geslo baze podatkov
mysql_select_db ($ nameDB, mysql_connect ($ nameSERVER, $ nameUSER, $ passUSER));
// POVEZAVA Z BAZO PODATKOV (DB)

// PRIKAZI GLAVE
če (! isset ($ _ GET ["id"]))
{
$ result = mysql_query ("IZBERI ID, naslov IZ strani");
$ myrow = mysql_fetch_array ($ rezultat);

naredi
{
echo "". $ myrow."
";
}
medtem ko ($ myrow = mysql_fetch_array ($ rezultat));
}
// PRIKAZI GLAVE

// PRIKAŽI CELOTNO BESEDILO
če (isset ($ _ GET ["id"]))
{

$ myrow = mysql_fetch_array ($ rezultat);

echo $ myrow;
}
// PRIKAŽI CELOTNO BESEDILO
?>

Dodal sem dva pogoja. Seznam z glavami bomo videli le, če globalna spremenljivka $ _GET ["id"] ne obstaja. Celotno besedilo bomo videli le, če ta spremenljivka obstaja. V tem primeru bomo prikazali samo en zapis, ki ga potrebujemo iz baze podatkov. Evo, kaj imamo:

Zdaj mislim, da je čas, da se naučimo, kako dodati nove vrstice v tabelo.

Dodajanje podatkov v bazo podatkov

Začeli bomo dodajati tako, da ustvarimo obrazec, tukaj je del kode, ki ga je treba dodati na konec naše datoteke:

// OBRAZEC DODAJ ZAPISE
if (isset ($ _ GET ["add"]))
{
odmev "







";
}
// OBRAZEC DODAJ ZAPISE

Ta obrazec se bo pojavil le, če bo obstajala globalna spremenljivka $ _GET ["add"], zato morate v nit, kjer je na dnu, vstaviti povezavo, da dodate nov članek. Najboljši način za to je v izhodni kodi glave, lahko tudi uredite pogoj za izhod naših glav, kot je ta:

// PRIKAZI GLAVE
če (! isset ($ _ GET ["id"]) IN! isset ($ _ GET ["add"]))
{
$ result = mysql_query ("IZBERI ID, naslov IZ strani");
$ myrow = mysql_fetch_array ($ rezultat);

naredi
{
echo "". $ myrow."
";
}
medtem ko ($ myrow = mysql_fetch_array ($ rezultat));

odmev "


Dodaj objavo ";
}
// PRIKAZI GLAVE

Pogoj sem uredil tako, da se seznam glav ne prikaže, ko se prikaže obrazec, to se je zgodilo:

$ result = mysql_query ("INSERT INTO ime tabele baze podatkov (polje DB 1, polje DB 2) Vrednosti (" podatki 1 "," podatki 2 ")");

Zdaj bomo napisali upravljalnik za našo mini skrbniško ploščo in vse boste razumeli. Tukaj je del kode, ki sem ga objavil takoj po povezavi z bazo podatkov:

// DODAJ ZAPISE

{

glava ("lokacija: test.php");
izhod;
}
// DODAJ ZAPISE

Pogoj je globalna spremenljivka $ _POST, torej če izpolnimo obrazec, kliknemo na gumb "Dodaj objavo", potem se bo sprožil naš pogoj. Naslovno polje bo vsebovalo podatke iz globalne spremenljivke $ _POST, besedilno polje pa $ _POST. Nato bo delovala vrstica z glavo ("location: test.php"), ki vam omogoča, da uporabnika preusmerite na drugo stran, v tem primeru bo test.php ta stran. In izhod iz linije; prekine izvajanje drugih skriptov. Evo, kaj se je zgodilo:

Urejanje podatkov v bazi podatkov

Da bi uredili določen zapis v naši bazi podatkov, moramo seveda določiti, kateri zapis je treba urediti ... Predlagam, da prikažemo gumb za urejanje v izhodni kodi celotnega besedila, uredimo ga:

// PRIKAŽI CELOTNO BESEDILO
če (isset ($ _ GET ["id"]))
{
$ result = mysql_query ("IZBERI besedilo S strani KJE ID =" $ _ GET "");
$ myrow = mysql_fetch_array ($ rezultat);

echo $ myrow;
odmev "


Uredi objavo ";
}
// PRIKAŽI CELOTNO BESEDILO


če (isset ($ _ GET ["edd"]))
{

$ myrow = mysql_fetch_array ($ rezultat);

Odmev "








";
}
// OBRAZEC UREJANJE ZAPISOV

Ta del kode sem dodal po obrazcu za dodajanje zapisov. Ta obrazec je skoraj enak dodajanju objav. Kot ste morda opazili, sem preoblikoval atribute imena in dodal atribut vrednosti. V ta atribut sem dal podatke, ki sem jih iznesel iz baze podatkov. Tu je tudi nevidno polje. Potreben je za pošiljanje identifikatorja zapisa v datoteko upravljavca.

Če bomo na zaslonu prikazali obrazec, ni seznama glav, bomo popravili stanje:

// PRIKAZI GLAVE

{
$ result = mysql_query ("IZBERI ID, naslov IZ strani");
$ myrow = mysql_fetch_array ($ rezultat);

naredi
{
echo "". $ myrow."
";
}
medtem ko ($ myrow = mysql_fetch_array ($ rezultat));

odmev "


Dodaj objavo ";
}
// PRIKAZI GLAVE

Čas je, da ugotovimo, kako se urejajo zapisi v bazi podatkov. Tukaj je sintaksa:

Zdaj pa napišemo vodnik. Tukaj je del kode, ki sem ga dodal takoj za dodajanjem upravljalnika zapisov:

// UREJANJE ZAPISOV

{

glava ("lokacija: test.php");
izhod;
}
// UREJANJE ZAPISOV

Po pogoju je razvidno, da se bo obdelovalec zagnal le, če kliknemo na gumb »uredi objavo«. Sledi posodobitev baze podatkov. V naslovno polje bomo vnesli vrednost globalne spremenljivke $ _POST in v besedilno polje - $ _POST. Uredili bomo vrstico, katere id je enak globalni spremenljivki $ _POST. Nato uporabnika preusmerimo nazaj na seznam naslovov:

Brisanje zapisov iz baze podatkov

No, zadnja stvar, ki se nam je preostala naučiti, je brisanje .. Je enostavnejše od vseh ostalih, zato bodite pozorni na sintakso:

Če želite izbrisati nekatere zapise, morate nekam v nit postaviti povezavo, s katero lahko uporabnik izbriše nekaj zapisov ... postavimo to povezavo v izpis celotnega besedila objave:

// PRIKAŽI CELOTNO BESEDILO
če (isset ($ _ GET ["id"]))
{
$ result = mysql_query ("IZBERI besedilo S strani KJE ID =" $ _ GET "");
$ myrow = mysql_fetch_array ($ rezultat);

echo $ myrow;
odmev "


Uredi objavo ";
odmev "
Izbriši objavo ";
}
// PRIKAŽI CELOTNO BESEDILO

Rezultat dela

Tukaj je celotna koda za današnjo objavo:

// POVEZAVA Z BAZO PODATKOV (DB)
$ nameDB = "phptest"; // Ime baze podatkov
$ nameSERVER = "localhost"; // Strežnik
$ nameUSER = "root"; // uporabniško ime baze podatkov
$ passUSER = ""; // Uporabniško geslo baze podatkov
mysql_select_db ($ nameDB, mysql_connect ($ nameSERVER, $ nameUSER, $ passUSER));
// POVEZAVA Z BAZO PODATKOV (DB)

// DODAJ ZAPISE
if (isset ($ _ POST ["title_post"]) IN isset ($ _ POST ["text_post"]))
{
$ result = mysql_query ("VSTAVI NA stran (naslov, besedilo) VREDNOSTI (" $ _POST "," $ _ POST ")");
glava ("lokacija: test.php");
izhod;
}
// DODAJ ZAPISE

// UREJANJE ZAPISOV
if (isset ($ _ POST ["title_post_edd"]) IN isset ($ _ POST ["text_post_edd"]))
{
$ rezultat = mysql_query ("POSODOBITE NASTAVITEV strani naslov =" (! LANG: $ _ POST", text="$_POST" WHERE id="$_POST"");!}
glava ("lokacija: test.php");
izhod;
}
// UREJANJE ZAPISOV

// IZBRIŠI ZAPISE
če (isset ($ _ GET ["del"]))
{
$ result = mysql_query ("IZBRIŠI S strani KJE id =" $ _ GET "");
glava ("lokacija: test.php");
izhod;
}
// IZBRIŠI ZAPISE

// PRIKAZI GLAVE
če (! isset ($ _ GET ["id"]) IN! isset ($ _ GET ["add"]) AND! isset ($ _ GET ["edd"]))
{
$ result = mysql_query ("IZBERI ID, naslov IZ strani");
$ myrow = mysql_fetch_array ($ rezultat);

naredi
{
echo "". $ myrow."
";
}
medtem ko ($ myrow = mysql_fetch_array ($ rezultat));

odmev "


Dodaj objavo ";
}
// PRIKAZI GLAVE

// PRIKAŽI CELOTNO BESEDILO
če (isset ($ _ GET ["id"]))
{
$ result = mysql_query ("IZBERI besedilo S strani KJE ID =" $ _ GET "");
$ myrow = mysql_fetch_array ($ rezultat);

echo $ myrow;
odmev "


Uredi objavo ";
odmev "
Izbriši objavo ";
}
// PRIKAŽI CELOTNO BESEDILO

// OBRAZEC DODAJ ZAPISE
if (isset ($ _ GET ["add"]))
{
odmev "







";
}
// OBRAZEC DODAJ ZAPISE

// OBRAZEC UREJANJE ZAPISOV
če (isset ($ _ GET ["edd"]))
{
$ result = mysql_query ("IZBERI * IZ strani KJE id =" $ _ GET "");
$ myrow = mysql_fetch_array ($ rezultat);

Odmev "








";
}
// OBRAZEC UREJANJE ZAPISOV
?>

Zaključek

Material se je izkazal za precej zapletenega. Ampak! Morda ste opazili, da sem uporabil samo informacije, ki sem jih dal prej. To pomeni, da lahko s tem znanjem ustvarite najpreprostejše projekte v php! Če ste vse to obvladali, potem lahko s ponosom izjavite, da ste programer začetnik! No, zdaj lahko začnete ustvarjati svoj prvi cms. Če imate kakršna koli vprašanja in najverjetneje obstajajo, vprašajte, pomagal vam bom, kolikor bom lahko! Srečno, za danes imam vse!

P.S.: Kaj je mdf datoteka? Kako ga odpreti? Kako ga odprem? Na ta in mnoga vprašanja lahko odgovorite na voprosi4ek.ru

Naučili smo se, kako se povezati s strežnikom MySQL, izbrati bazo podatkov za delo, spoznali funkcijo PHP za pošiljanje poizvedb na strežnik MySQL, naučili smo se dveh preprostih poizvedb (ustvarjanje in brisanje tabele) in se naučili zapreti povezavo.

Zdaj se bomo poglobili v poizvedbe MySQL. Pa začnimo!

Ustvarjanje tabele - Ustvari tabelo

Zdaj imamo prazno bazo podatkov, v njej ni tabel. Torej najprej ustvarimo tabelo. To vemo že iz prvega dela.

Tukaj je koda skripta, ki bo ustvarila ploščo, ki jo potrebujemo:

$ povezava = mysqli_connect ("localhost", "root", "", "tester"); if (! $ link) die ("Napaka"); $ query = "USTVARI TABLE uporabnikov (prijava VARCHAR (20), geslo VARCHAR (20))"; if (mysqli_query ($ povezava, $ poizvedba)) echo "Tabela je bila ustvarjena."; else echo "Tabela ni ustvarjena:" .mysqli_error (); mysqli_close ($ povezava);

V naši tabeli sta samo dve polji: prijava in geslo. Zaenkrat ga ne potrebujemo več, ne komplicirajmo postopka.

Torej, tabela je ustvarjena.

Dodajanje vrstic (zapisov) v tabelo - INSERT

V tabelo lahko dodate novo vrstico z ukazom insert SQL. Tukaj je primer:

$ povezava = mysqli_connect ("localhost", "root", "", "tester"); if (! $ link) die ("Napaka"); $ query = "VSTAVI V uporabnike (prijava, geslo) VREDNOST (" zeus "," pass123 ")"; if (mysqli_query ($ link, $ query)) echo "Uporabnik je bil dodan."; else echo "Ni dodan uporabnik:". mysqli_error (); mysqli_close ($ povezava);

Poizvedba SQL je sestavljena iz ukaza INSERT INTO, imena zbirke uporabnikov, nato imen polj v oklepajih, nato besede VALUE, ki ji sledijo dodane vrednosti v oklepajih. Vrednosti so navedene.

Sintaksa za zahtevo izgleda takole:

INSERT INTO table_name (stolpec1, stolpec2) VREDNOST ("x1", "x2")

Narekovaji v drugem oklepaju so obvezni.

Spremenljivke so lahko namesto vrednosti. Tukaj je primer:

$ povezava = mysqli_connect ("localhost", "root", "", "tester"); if (! $ link) die ("Napaka"); $ login = "zeus"; $ password = "pass123"; $ query = "VSTAVI V uporabnike (prijava, geslo) VREDNOST (" $ prijava "," $ geslo ")"; if (mysqli_query ($ povezava, $ poizvedba)) echo "Uporabnik je bil dodan."; else echo "Ni dodan uporabnik:". mysqli_error (); mysqli_close ($ povezava);

Seveda ta primer nima smisla. Začetnikom bo morda koristno slišati, da se na ta način v bazi beležijo prijave in gesla, ki jih uporabniki navedejo ob registraciji. Ti podatki so shranjeni v spremenljivkah, nato pa se po preverjanju zapišejo v bazo podatkov.

Obstaja hiter način vstavljanje več vrstic z eno poizvedbo INSERT:

VSTAVI V uporabnike (prijava, geslo) VREDNOST ("bob", "eee333"), ("Rooki", "12345"), ("magy", "olol88e8")

Kot lahko vidite, so našteti podatki preprosto ločeni z vejicami.

Tako smo se z ukazom INSERT naučili dodajati zapise v tabelo. Pojdi naprej.

Pogled tabele: ukaz SELECT

Zdaj imamo tabelo uporabnikov, ki ima vrstice. Prejšnji skript je mogoče zagnati večkrat in vsakič bo dodal vrstico v tabelo. Zdaj morda ne vemo, koliko vrstic imamo v tabeli. In rad bi vedel, kaj smo vanj zapisali.

Če želite pridobiti podatke iz tabele, uporabite ukaz SQL SELECT. Znak * pomeni, da zahtevamo vse podatke, nato za besedo FROM napišemo ime tabele, iz katere želimo prejeti podatke.

Poizvedimo vse podatke iz tabele uporabnikov:

$ povezava = mysqli_connect ("localhost", "root", "", "tester"); če (! $ povezava) die ("Napaka"); $ query = "IZBERI * IZ uporabnikov"; $ rezultat = mysqli_query ($ povezava, $ poizvedba); if (! $ rezultat) echo "Prišlo je do napake:". mysqli_error (); else echo "Prejeti podatki"; mysqli_close ($ povezava);

Funkcija mysqli_query () nam je vrnila identifikator rezultata poizvedbe - dali smo ga v spremenljivko in v prihodnosti bomo z njo delali z drugimi funkcijami PHP.

Število zapisov v zahtevi

Ugotovimo, koliko vrstic je v naši poizvedbi? Sam sem zagnal skript za dodajanje zapisa v tabelo, ne spomnim se, kolikokrat, zdaj pa ne vem, koliko vrstic je v moji tabeli.

Funkcija mysqli_num_rows () se uporablja za določanje števila vrstic v rezultatu poizvedbe. Tej funkciji se posreduje identifikator rezultata poizvedbe in vrne število zapisov.

$ povezava = mysqli_connect ("localhost", "root", "", "tester"); če (! $ povezava) die ("Napaka"); $ query = "IZBERI * IZ uporabnikov"; $ rezultat = mysqli_query ($ povezava, $ poizvedba); if (! $ result) echo "Prišlo je do napake:". mysqli_error (); else echo "Prejeti podatki"; $ count = mysqli_num_rows ($ rezultat); echo "Skupno število vrstic v tabeli: $ count."; mysqli_close ($ povezava);

Če moramo ugotoviti število zapisov v tabeli, potem ta metoda ni najbolj primerna. Tu smo ugotovili, koliko zapisov najdemo v poizvedbi, vendar se število zapisov v tabeli išče drugače.

Število zapisov v tabeli SELECT COUNT (*)

Če želite izvedeti število zapisov v tabeli, lahko uporabite ukaz SELECT COUNT (*) FROM ime_tabele.

$ povezava = mysqli_connect ("localhost", "root", ""); če (! $ povezava) die ("Napaka"); mysqli_select_db ("tester"); $ query = "IZBERI * IZ uporabnikov"; $ rezultat = mysqli_query ($ povezava, $ poizvedba); if (! $ rezultat) echo "Prišlo je do napake:". mysqli_error (); else echo "Podatki so bili prejeti."; $ count = mysqli_fetch_row ($ rezultat); echo "Skupno število vrstic v tabeli: $ count."; mysqli_close ($ povezava);

Upoštevajte, da smo tukaj uporabili novo PHP funkcija mysqli_fetch_row () za pridobivanje podatkov. Ta funkcija vrne vrstico rezultata poizvedbe v obliki preproste matrike, v našem primeru je v vrstici eno polje in ima indeks 0.

Ogled rezultata poizvedbe v zanki

Po izvedbi poizvedbe SQL z ukazom SELECT in pridobitvi identifikatorja rezultata poizvedbe PHP ustvari notranji kazalec v naboru zapisov rezultatov. Ta kazalec se samodejno premakne na naslednji zapis po sklicevanju na trenutni zapis. Ta mehanizem omogoča zelo enostavno zanko skozi niz rezultatov poizvedbe SELECT.

PHP ima več funkcij, s katerimi lahko dobite matriko, sestavljeno iz njenih polj, za vsako vrstico nastale poizvedbe. Vzemimo za primer funkcijo mysqli_fetch_row (). Tej funkciji se posreduje ID zahteve in vrne matriko. Tako se v zanki pregleda celoten rezultat poizvedbe; ko doseže konec rezultata poizvedbe, bo funkcija vrnila false.

Torej povprašamo po vseh podatkih iz tabele uporabnikov (SELECT * FROM users).


"; while ($ row = mysqli_fetch_row ($ rezultat)) (echo" Prijava: $ vrstica. Geslo: $ vrstica.
";) mysqli_close ($ povezava);

Mysqli_fetch_row () vrne preprosto matriko. V vsaki iteraciji zanke bomo iz tabele prejeli matriko z vrstico, do katere polj lahko dostopamo z določitvijo številčnega indeksa.

Enako lahko storite s funkcijo mysql_fetch_assoc (), ki vrne asociativno matriko.

$ povezava = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Napaka"); mysqli_select_db ("tester"); $ rezultat = mysqli_query ($ povezava, "IZBERI * IZ uporabnikov"); if (! $ rezultat) echo "Prišlo je do napake:". mysqli_error (); drugače odmeva "Prejeti podatki.
"; while ($ row = mysqli_fetch_assoc ($ rezultat)) (echo" Prijava: $ vrstica. Geslo: $ vrstica.
";) mysqli_close ($ povezava);

Obstajajo tudi funkcije mysqli_fetch_array () - vrne katero koli vrsto matrike in mysqli_fetch_object () - vrne predmet.

SELECT DISTINCT Query - edinstvene vrednosti polj

Ustvarimo novo tabelo:

$ povezava = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Napaka"); mysqli_select_db ("tester"); // izpusti obstoječo tabelo mysqli_query ($ link, "DROP TABLE users"); // ustvari novo tabelo $ query = "USTVARI TABLE uporabnikov (ime VARCHAR (20), priimek VARCHAR (20), starost TINYINT UNSIGNED)"; if (mysqli_query ($ povezava, $ poizvedba)) echo "Tabela je bila ustvarjena.
"; else echo" Tabela ni ustvarjena: ". mysqli_error (); // funkcija za dodajanje zapisov v tabelo funkcija add_new_line ($ povezava, $ poizvedba) (če (! mysqli_query ($ povezava, $ poizvedba)) echo" Uporabnik ni dodano : ". mysqli_error ();) // dodaj zapise add_new_line ($ povezava," VSTAVI V uporabnike (ime, priimek, starost) VALUE ("Max", "Jayson", "33") "); add_new_line ($ povezava , "VSTAVI V uporabnike (ime, priimek, starost) VALUE (" Bob "," Freeman "," 26 ")"); add_new_line ($ povezava, "VSTAVI V uporabnike (ime, priimek, starost) VALUE (" Sara " , "Lopes", "65") "); add_new_line ($ povezava," VSTAVI V uporabnike (ime, priimek, starost) VALUE ("Serg", "Pupin", "29") "); add_new_line ($ povezava, " INSERT INTO users (ime, priimek, starost) VALUE ("Serg", "Borman", "43") "); add_new_line ($ link," INSERT INTO users (ime, priimek, starost) VALUE ("Max", " Lopes "," 21 ")"); // prikaži vsebino tabele v brskalniku $ result = mysqli_query ($ povezava, "IZBERI * IZ uporabnikov"); če (! $ Rezultat) echo "Prišlo je do napake: ". Mysqli_error (); else echo "Prejeti podatki.
"; medtem ko ($ row = mysqli_fetch_assoc ($ rezultat)) (echo" Ime: $ vrstica. Priimek: $ vrstica. Starost: $ vrstica.
";) mysqli_close ($ povezava);

Tako imamo novo, bolj zapleteno tabelo z edinstvenimi zapisi. Zdaj pa poglejmo, koliko imen imamo v bazi podatkov.

$ povezava = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Napaka"); mysqli_select_db ("tester"); $ rezultat = mysqli_query ($ povezava, "IZBERITE DISTINCT ime IZ uporabnikov"); echo "Skupna imena:". mysqli_num_rows ($ rezultat). "
"; echo" Seznam imen:
"; while ($ name = mysqli_fetch_row ($ result)) (odmev" $ name
";) mysqli_close ($ povezava);

Poizvedba SQL "IZBERI DISTINCT ime FROM uporabnikov" je vrnila rezultat z vsemi edinstvenimi imeni v naši tabeli. Vsako edinstveno ime v novi vrstici v rezultatu poizvedbe.

Razvrščanje rezultata - ORDER BY

Če poizvedbi SQL dodamo ukaz ORDER BY, razvrstimo rezultat poizvedbe v naraščajočem vrstnem redu (številke in črke po abecedi). Tukaj je primer, kjer lahko primerjate običajno poizvedbo in razvrščeno po starosti (polje starosti).



";) echo" Razvrsti po starosti:
"; $ rezultat = mysqli_query ($ povezava," IZBERI * IZ UPORABNIKOV ORDER BY A age "); while ($ line = mysqli_fetch_row ($ rezultat)) (echo" Ime: $ line. Priimek: $ line. Starost: $ vrstico.
";) mysqli_close ($ povezava);

Polje za starost v ukazu ORDER BY lahko zamenjate z imenom in si ogledate rezultat.

Če želite rezultat poizvedbe razvrstiti v obratnem vrstnem redu, uporabite ukaz ORDER BY DESC DESC.

Ustrezni pogoj - KJE

Z dodajanjem ukaza WHERE v poizvedbo SQL bomo poizvedovali samo tiste zapise, ki se ujemajo s pogojem. Na primer, vložimo zahtevo za osebe, mlajše od 30 let.

Če želite to narediti, uporabite poizvedbo SQL "SELECT * FROM users WHERE age

$ povezava = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Napaka"); mysqli_select_db ("tester"); echo "Ljudje, mlajši od 30 let:
"; $ rezultat = mysqli_query ($ povezava," SELECT * FROM uporabnikov WHERE starost<30"); while ($line = mysqli_fetch_row($result)) { echo "Имя: $line. Фамилия: $line. Возраст: $line.
";) mysqli_close ($ povezava);

Rezultat lahko takoj razvrstimo tudi po naraščajočem vrstnem redu po starosti:
»IZBERI * IZ uporabnikov KJE starost<30 ORDER BY age ".

Če naredimo poizvedbo »IZBERI ime IZ uporabnikov KJE starost<30 ORDER BY age ", то в результате нам вернут только значения поля "name", но они также будут отсортированы по age.

Poizvedujemo lahko po vrednostih dveh polj: »IZBERI ime, starost IZ uporabnikov KJE starost

Zdaj vprašajte vse uporabnike z imenom "Max".

$ povezava = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Napaka"); mysqli_select_db ("tester"); odmev "All Max:
"; $ result = mysqli_query ($ link," SELECT * FROM users WHERE name = "Max" "); while ($ line = mysqli_fetch_row ($ result)) (echo" Ime: $ line. Priimek: $ line. Starost: $ line.
";) mysqli_close ($ povezava);

In še en primer poizvedbe - izbrala bo samo imena iz tabele uporabnikov, vse razen Max.

SELECT ime FROM users WHERE name! = "Max"

To je vse s klavzulo WHERE.

Omejitev zapisov – LIMIT

Z dodajanjem ukaza LIMIT v poizvedbo SQL bomo omejili velikost rezultata.

Poizvedba, ki natisne prve tri zapise: "SELECT * FROM users LIMIT 3". Poglejmo, kako deluje:

$ povezava = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Napaka"); mysqli_select_db ("tester"); echo "Vsebina tabele:
"; $ result = mysqli_query ($ link," SELECT * FROM users "); while ($ line = mysqli_fetch_row ($ result)) (echo" Ime: $ line. Priimek: $ line. Starost: $ line.
";) odmev"

Prvi trije vnosi:
"; $ rezultat = mysqli_query ($ povezava," SELECT * FROM users LIMIT 3 "); while ($ line = mysqli_fetch_row ($ rezultat)) (echo" Ime: $ line. Priimek: $ line. Starost: $ line .
";) odmev"

Drugi trije vnosi:
"; $ result = mysqli_query ($ link," SELECT * FROM users LIMIT 3, 3 "); while ($ line = mysqli_fetch_row ($ result)) (echo" Ime: $ line. Priimek: $ line. Starost: $ vrstica ...
";) mysqli_close ($ povezava);

Tudi tukaj smo uporabili poizvedbo: "IZBERI * IZ LIMIT uporabnikov 3, 3". Druga trojka označuje odmik v rezultatu poizvedbe.

Ujemanje vzorcev - LIKE

Jezik SQL podpira preproste vzorce. Za to se uporabi ukaz LIKE, vzorec pa je podan z znakom%.

Tukaj je primer poizvedbe, ki bo vrnila vse zapise z imeni, ki se začnejo s črko S.

SELECT * FROM users WHERE name LIKE "S%"

Testiranje zahteve:

$ povezava = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Napaka"); mysqli_select_db ("tester"); echo "Vsebina tabele:
"; $ result = mysqli_query ($ link," SELECT * FROM users "); while ($ line = mysqli_fetch_row ($ result)) (echo" Ime: $ line. Priimek: $ line. Starost: $ line.
";) odmev"

Imena, ki se začnejo na S:
"; $ rezultat = mysqli_query ($ povezava," SELECT * FROM uporabnikov, KJE ime LIKE "S%" "); medtem ko ($ line = mysqli_fetch_row ($ rezultat)) (echo" Ime: $ line. Priimek: $ line Starost: $ line.
";) mysqli_close ($ povezava);

Tukaj je primer poizvedbe, ki bo vrnila vse zapise s priimki, ki se končajo s črko s.

IZBERI * IZ uporabnikov KJE ime LIKE "% s"

Ujemanje pogoja - IN

Ta poizvedba z ukazom IN bo vrnila samo tiste vrstice, ki se strogo ujemajo s pogojem.

Na primer, zanimajo nas osebe, stare 21, 26 in 33 let.

IZBERI * IZ uporabnikov WHERE starost IN (21,26,33)

Testiranje zahteve:

$ povezava = mysqli_connect ("localhost", "root", ""); if (! $ link) die ("Napaka"); mysqli_select_db ("tester"); echo "Vsebina tabele:
"; $ result = mysqli_query ($ link," SELECT * FROM users "); while ($ line = mysqli_fetch_row ($ result)) (echo" Ime: $ line. Priimek: $ line. Starost: $ line.
";) odmev"

Ljudje zahtevane starosti (21, 26, 33 let):
"; $ result = mysqli_query ($ povezava," SELECT * FROM users WHERE age IN (21, 26, 33) "); while ($ line = mysqli_fetch_row ($ rezultat)) (echo" Ime: $ line. Priimek : $ line Starost: $ line.
";) mysqli_close ($ povezava);

Največja in najmanjša vrednost v stolpcu

Izbere največjo vrednost starosti v tabeli uporabnikov.

IZBERI najvišjo (starost) IZ uporabnikov

Naslednja poizvedba izbere podatke iz tabele uporabnikov z uporabo polj imena in starosti, kjer je starost najmanjša vrednost.

IZBERI ime, min (starost) FROM uporabnikov

Posodabljanje zapisa - UPDATE

Naj Max Lopes nastavi starost na 15 let. To se naredi s poizvedbo MySQL:

POSODOBITE uporabnike NASTAVI starost = "15" KJE ime = "Max" IN priimek = "Lopes"

Upoštevajte nov ukaz AND (in - v angleščini pomeni "in") v poizvedbi. Če priimka ne navedemo, bo za vse Maxe v tabeli nastavljena starost 15 let.

Ena poizvedba lahko posodobi dve ali več polj v eni vrstici. To se naredi na naslednji način:

UPDATE uporabnikov NASTAVI starost = "18", priimek = "Coocker" KJE id = "3"

Naša tabela nima polja id, zato ta poizvedba na njej ne bo delovala. Zagotovo pa se bomo naučili tega polja, ki vsebuje edinstvene številke vrstic.

Izbriši zapis - IZBRIŠI

Poizvedba baze podatkov MySQL za brisanje zapisa:

IZBRIŠI IZ uporabnikov WHERE id = "10"

Spet v naši tabeli ni polja id. Iz nje pa lahko odstranimo vse osebe, mlajše od 18 let.

IZBRIŠI IZ uporabnikov WHERE starost< "18"

DOP TABELA

Poizvedba baze podatkov MySQL, ki izbriše celotno tabelo uporabnikov:

DROP TABLE uporabniki

Spuščanje stolpca - ALTER TABLE ... DROP ...

Včasih boste morda morali izbrisati stolpec iz tabele, na primer odstranimo stolpec starosti iz uporabnikov:

ALTER TABLE uporabniki DROP starost

Ta poizvedba MySQL je stolpec trajno in nepreklicno izbrisala.

Dodaj stolpec - ALTER TABLE ... DODAJ ...

Včasih boste morda želeli dodati stolpec obstoječi tabeli, na primer znova dodajmo stolpec starosti v tabelo uporabnikov:

ALTER TABLE users DODAJ starost TINYINT UNSIGNED

Preimenuj stolpec - ALTER TABLE ... SPREMENI ...

Včasih boste morda morali preimenovati stolpec, na primer preimenovati stolpec starosti v vozrast. To počnemo tako:

ALTER TABLE uporabniki CHANGE starost vozrast TINYINT UNSIGNED

Ta poizvedba MySQL je preimenovala starostni stolpec v vozrast s podatkovnim tipom TINYINT UNSIGNED.

Preimenovanje tabele - PREIMENUJ TABLE ... V ...

Včasih bo morda treba preimenovati tabelo:

PREIMENUJTE TABLE uporabnike v osebe

Spuščanje baze podatkov - DROP DATABASE

Ta poizvedba lahko spusti bazo podatkov s preizkuševalcem imen:

DROP DATABASE tester

Ustvarjanje baze podatkov - CREATE DATABASE

Ta poizvedba ustvari bazo podatkov z imenom tester:

USTVARJITE tester BAZE PODATKOV

Ta zahteva mi deluje v Denverju, vendar na gostovanju morda ne bo delovala, če uporabnik baze podatkov nima dovoljenja za brisanje.

Rezultati

Tako smo se v tem delu seznanili s poizvedbami do MySQL. Mnoge zahteve, ki smo jih obravnavali, nam v procesu dela niso pogosto koristne, vendar jih morate poznati, saj bodo zagotovo prišli prav pri razvoju skriptov.

Nekatere zahteve so običajno narejene samo iz phpMyAdmin (na primer ustvarjanje in brisanje baz podatkov).

Pri delu spletnih mest morate običajno dodati zapis v tabelo, ga urediti ali izbrisati iz tabele.

Naslednji korak je raziskati podatkovne vrste MySQL.

Po namestitvi in ​​konfiguraciji baze podatkov MySQL lahko začnete pisati PHP skripte za interakcijo z bazo podatkov. Ta članek opisuje vse osnovne funkcije, ki vam omogočajo prenos podatkov naprej in nazaj s spletnega mesta v bazo podatkov.

Ni pomembno, kako preprosti ali zapleteni so vaši skripti, dokler se pogovarjajo z bazo podatkov, se začnejo z istimi nekaj stvarmi:

  1. Povezovanje z nameščeno bazo podatkov MySQL.
  2. Uporaba ukaza USE proti želeni bazi podatkov MySQL.
  3. Oddaja SQL v bazo podatkov.
  4. Pridobivanje rezultatov.
  5. Obdelava rezultatov.

Ukrepi 3, 4 in 5 se razlikujejo glede na vrsto opravljenega dela. Skript, ki ustvarja tabele, se nekoliko razlikuje od skripta, ki išče obstoječe tabele. Toda prva dva koraka – povezovanje z MySQL in uporaba pravilne baze podatkov – sta vedno enaka, ne glede na namen skripta.

Povezava z bazo podatkov MySQL

Najprej morate svojemu PHP skriptu povedati, kako se povezati z bazo podatkov. Ta proces v bistvu pove PHP-ju, naj naredi točno to, kar ste storili, ko ste začeli z odjemalcem ukazne vrstice MySQL. Za povezavo z bazo podatkov bo moral PHP posredovati naslednje podatke: ime gostitelja vaše baze podatkov, uporabniško ime, geslo in ime baze podatkov.

Za povezavo z bazo podatkov bomo uporabili PDO - PHP Data Objects. Ko ga uporabljate, se ne morete bati, to je mogoče zahvaljujoč pripravljenim parametrom, a več o tem kasneje.

Je pomembno! Če na internetu najdete lekcijo, kjer se bo uporabljal mysqli_connect ali mysql_connect - jo lahko zaprite, kot so zapisali pred 10 leti.

Če želite ustvariti povezavo, morate ustvariti nov predmet razreda PDO. Kot argumente konstruktorju morate posredovati DSN - to je niz, ki označuje gonilnik (v našem primeru mysql), ime gostitelja in zbirke podatkov. Drugi argument je uporabniško ime (v našem primeru root). Tretje je geslo (v našem primeru prazno).

Pred lekcijo sem ustvaril bazo uporabnikov in v njej podatkovno tablico z naslednjo strukturo:

CREATE TABLE `data` (`id` int (11) NOT NULL AUTO_INCREMENT, `name` varchar (32) DEFAULT NULL,` year` char (4) DEFAULT NULL, PRIMARY KEY (id)) ENGINE = InnoDB DEFAULT CHARSET = utf8 ; $ dbh = nov \ PDO ("mysql: gostitelj = localhost; dbname = uporabniki;", "root", "");

Prvi korak po povezavi je nastavitev kodiranja:

$ dbh-> exec (»SET NAMES UTF8«);

Po tem lahko izvajamo zahteve. Izgleda takole:

$ stm = $ dbh-> pripravi ("VSTAVI V podatke (`ime`, `leto`) VREDNOSTI (: ime,: leto)"); $ stm-> bindValue ("ime", "Ime"); $ stm-> bindValue ("leto", "1703"); $ stm-> izvrši ();

Najprej ustvarimo pripravljeno zahtevo - še ni izvedena. Upoštevajte, da smo namesto vrednosti navedli: ime in: leto - to so parametri, v katere bodo zamenjane vrednosti, določene v naslednjih dveh vrsticah. Na koncu pokličemo execute () - dejansko izvedite nastalo zahtevo.

Zaženimo ta skript in poglejmo, kaj se je pojavilo v bazi podatkov.

Poskusimo še nekajkrat posodobiti skript in si znova ogledati bazo podatkov.

Pridobivanje iz baze podatkov s pomočjo PHP

Zdaj pa preberimo podatke, ki smo jih zapisali. Shema je enaka, le da pripravimo poizvedbo SELECT.

$ stm = $ dbh-> pripravi ("SELECT * FROM` data`"); $ stm-> izvrši ();

Zahteva je bila izpolnjena, a to še ni vse. Zdaj morate dobiti rezultat. To se naredi takole:

$ allUsers = $ stm-> fetchAll (); var_dump ($ allUsers);

Kot rezultat dobimo matriko teh zapisov:

Pokažimo jih lepše, dodajmo nekaj HTML-ja.

$ stm = $ dbh-> pripravi ("SELECT * FROM` data`"); $ stm-> izvrši (); $ allUsers = $ stm-> fetchAll (); ?>

idImeLeto

No, to je čisto druga zadeva!

Če morate v poizvedbo SELECT dodati nekaj parametrov, se to naredi na enak način:

$ stm = $ dbh-> pripravi ("SELECT * FROM` data` WHERE id =: id "); $ stm-> bindValue ("id", 1); $ stm-> izvrši (); $ uporabniki = $ stm-> fetchAll (); var_dump ($ uporabnikov);

Zdaj se bo vrnil samo en uporabnik, ki ustreza pogojem zahteve.

V tem članku bomo s primeri analizirali tako zelo pomembne točke pri delu z bazami podatkov MySQL (DB), kot so pridobivanje iz baze podatkov, pisanje v bazo podatkov, posodabljanje informacij v bazi podatkov, pa tudi brisanje iz baze. Vse to bo storjeno s štirimi stavki SELECT, INSERT, UPDATE in DELETE, o katerih bomo razpravljali v tem članku.

Torej, če morate izvleči vsa polja iz baze podatkov, uporabite naslednjo kodo.

$ rezultat = mysql_query ("SELECT * FROM first_table", $ db);

Zvezdica pomeni, da morate iz tabele potegniti vsa polja.

Če morate izvleči le nekatera polja, na primer ime in priimek.

$ rezultat = mysql_query ("IZBERI ime, priimek IZ prve_tabele", $ db);

ime, priimek - polja z imeni in priimki uporabnikov.

Če morate dobiti natančne podatke, na primer priimek vseh uporabnikov v zbirki podatkov z določenim imenom (ime bo vneseno v spremenljivko $ name).

name = '$ name' - polje z imenom je enako spremenljivki $ name.

Poleg enega pogoja lahko navedemo tudi več, na primer, pridobiti morate identifikator vseh uporabnikov z določenim imenom in priimkom (ime in priimek bosta vnesena v spremenljivki $ ime in $ last_name). . Za to lahko uporabimo naslednjo kodo.

Če moramo dobiti zapise, kjer je izpolnjen eden od več pogojev, na primer pridobiti identifikatorje vseh uporabnikov, katerih ime ali priimek se ujema s tistimi, ki so določeni v pogojih.

Če morate rezultat razvrstiti po nekaterih parametrih, na primer po imenu.

$ rezultat = mysql_query ("SELECT * FROM first_table ORDER BY name", $ db);

ORDER BY name - razvrsti po imenu.

Če morate razvrstiti v obratnem vrstnem redu.

$ rezultat = mysql_query ("SELECT * FROM first_table ORDER BY DESC", $ db);

DESC - v obratnem vrstnem redu.

Če morate iz baze podatkov potegniti le določeno število polj. Na primer, morate izvleči prvih pet polj.

$ rezultat = mysql_query ("IZBERI * IZ prve_tabele ORDER BY id LIMIT 5", $ db);

LIMIT 5 - iz baze izvlecite samo prvih pet rezultatov.

To so bili majhni primeri vzorca iz baze podatkov. Zdaj pa poglejmo, kako dobljeni rezultat pretvoriti v matriko za nadaljnjo uporabo, na primer za prikaz rezultata na zaslonu. Za to ima PHP posebno mysql_fetch_array ().

Rezultat izvajanja funkcije lahko vnesemo v spremenljivko, na primer v spremenljivko $ myrow, ki bo shranjena sama zase. Kot parameter funkcije mysql_fetch_array () rezultat izvedbe funkcije bo posredovan mysql_query ()... Vse bo videti takole.

$ myrow = mysql_fetch_array ($ rezultat);

Zdaj lahko dostopamo do elementov asociativnega niza $ myrow. Kot primer si oglejmo kodo, ki prikazuje uporabniško ime z id = 1. Kot baza podatkov bo uporabljena baza podatkov db_first iz prejšnjega članka.

/ * Povežite se z bazo podatkov * / $ db = mysql_connect ("strežnik MySQL", "uporabnik zbirke podatkov", "geslo za dostop do baze podatkov"); mysql_select_db ("db_name", $ db); / * Naredimo poizvedbo v bazo podatkov * / $ rezultat = mysql_query ("IZBERI ime IZ prve_tabele WHERE id =" $ id "", $ db); / * Pretvori rezultat v matriko * / $ myrow = mysql_fetch_array ($ rezultat); / * Natisnite rezultat na zaslon * / echo $ myrow ["name"];

Kot lahko vidite, je vse zelo preprosto in jasno.

Zdaj pa preidimo na naslednji stavek INSERT, ki je odgovoren za dodajanje informacij v bazo podatkov.

Dodajanje informacij v bazo podatkov. stavek INSERT

Stavek INSERT se uporablja za dodajanje informacij v bazo podatkov. Koda, ki je odgovorna za dodajanje, ima naslednjo sintakso.

$ result = mysql_query ("VSTAVI V tabelo (polje 1, polje 2, polje N) VREDNOSTI (" vrednost 1 "," vrednost 2 "," vrednost N ")");

Na primer, v first_table moramo dodati ime in priimek novega uporabnika. Za to lahko uporabite naslednjo kodo.

$ result = mysql_query ("INSERT INTO first_table (ime, priimek) VALUES (" $ name "," $ last_name ")");

Kjer sta $name in $ last_name spremenljivki z imenom in priimkom novega uporabnika.

Lahko uporabite za preverjanje rezultata.

$ result = mysql_query ("INSERT INTO first_table (ime, priimek) VALUES (" $ name "," $ last_name ")"); if ($ rezultat == "true") (echo "Zapis je bil uspešno dodan!";) else (echo "Zapis ni dodan!";)

Z drugimi besedami, če je spremenljivka $ rezultat resnična, se prikaže sporočilo, da je bil zapis dodan. V nasprotnem primeru se izpiše, da zapis ni bil dodan v bazo podatkov.

Posodabljanje podatkov v bazi podatkov. Izjava UPDATE

Stavek UPDATE se uporablja za posodobitev obstoječih informacij v bazi podatkov. Sintaksa za funkcijo mysql_query v tem primeru je naslednja.

Zdaj pa pojdimo na primer. Recimo, da moramo spremeniti ime in priimek uporabnika z identifikatorjem $ id v tabeli db_name. Za to lahko uporabite naslednjo kodo.

Zdaj pa preidimo na zadnji del članka in si oglejmo zadnji stavek DELETE, ki je odgovoren za brisanje informacij iz baze.

Odstranjevanje informacij iz baze podatkov. Izjava DELETE

Stavek DELETE se uporablja za brisanje polj iz baze podatkov. Sintaksa za funkcijo mysql_query () je v tem primeru naslednja.

Zdaj pa kot ponavadi preidimo na primer. Recimo, da moramo izbrisati uporabnika s $ id iz tabele db_name. Za to lahko uporabite naslednjo kodo.

S tem se ta članek zaključuje. Gradivo ni težko, vendar ga je precej težko razložiti skozi besedilo. Kljub temu mislim, da razumete celotno bistvo zgornjega gradiva. Če imate še vedno kakršna koli vprašanja o tem članku, jih lahko vedno postavite v komentarjih.

To je vse. Vso srečo in uspeh pri učenju PHP in MySQL.