Dodavanje podataka u sql php tablicu. Dodavanje podataka u PHP

U ovom članku ćemo pogledati kako koristiti PHP za umetanje redova u MySQL bazu podataka.

Korak 1 - kreiranje tabele

Prvo morate stvoriti tablicu za podatke. Ovo je jednostavan postupak koji se može izvesti pomoću phpMyAdmin -a na kontrolnoj tabli vašeg hostinga.

Nakon što se prijavite na phpMyAdmin, vidjet ćete sučelje poput ovog:

Kreirajmo tablicu s imenom Studenti u bazi podataka u266072517_name klikom na gumb "Kreiraj tablicu". Nakon toga ćemo vidjeti nova stranica, na kojem postavljamo sve potrebne parametre tablice:

Ovo je najviše jednostavno postavljanje koji se mogu koristiti za stol i dobiti Dodatne informacije o strukturi tabela / baza podataka.

Opcije kolona:

  • Name je naziv kolone koja se pojavljuje pri vrhu tabele.
  • Vrsta - tip kolone. Na primjer, odabrali smo varchar jer ćemo unositi string vrijednosti.
  • Dužina / Vrijednosti- koristi se za označavanje maksimalna dužina koji unos u ovoj koloni može imati.
  • Indeks - za polje "ID" koristili smo "primarni" indeks. Preporučuje se da prilikom stvaranja tablice koristite samo jednu kolonu kao primarni ključ. Koristi se za popis zapisa u tablici i potreban je pri postavljanju tablice. Također sam označio "A_I", što znači "Automatsko povećanje" - parametar za automatsko dodjeljivanje broja zapisa (1,2,3,4 ...).
    Pritisnite dugme "Sačuvaj" i tabela će biti kreirana.

Korak 2. Pisanje PHP koda za umetanje podataka u MySQL.

Opcija 1 - MySQLi metoda

Prvo morate uspostaviti vezu s bazom podataka. Nakon toga koristimo SQL INSERT upit. Potpuni primjer koda:

". mysqli_error ($ conn);) mysqli_close ($ conn);?>

Prvi dio koda (redovi 3 - 18) služi za povezivanje s bazom podataka.

Počnimo s retkom 19:

$ sql = "INSERT INTO Students (ime, prezime, email) VRIJEDNOSTI (" Thom "," Bočica "," [zaštićena e -pošta]")";

Ubacuje podatke u MySQL bazu podataka. INSERT INTO je naredba koja dodaje podatke u specificiranu tablicu. U našem primjeru, podaci se dodaju u tablicu učenika.

Zatim slijedi nabrajanje stupaca u koje su umetnute vrijednosti: ime, prezime, e -pošta. Podaci će biti dodani prikazanim redoslijedom. Da smo pisali (e -pošta, prezime, ime), vrijednosti bi se dodale različitim redoslijedom.

Sljedeći dio je operator VALUES. Ovdje navodimo vrijednosti za stupce: ime = Thom, prezime = Bočica, e -pošta = [zaštićena e -pošta]

Pokrenuli smo zahtjev koristeći PHP kod. U kodu, SQL upiti se moraju navoditi. Sljedeći dio koda (redovi 20-22) provjerava je li naš zahtjev bio uspješan:

if (mysqli_query ($ conn, $ sql)) (echo "New recordcreatedsuccessfully";)

Ovaj kôd prikazuje poruku o uspješnom izvršavanju zahtjeva.

I posljednji dio (22 - 24 retka) prikazuje obavijest ako zahtjev nije bio uspješan:

else (echo "Greška:". $ sql. "
". mysqli_error ($ conn);)

Opcija 2 - Metoda PHP objekta podataka (PDO)

Prvo se moramo povezati s bazom podataka stvaranjem novog PDO objekta. Prilikom rada s njim koristit ćemo različite metode PDO. Objektne metode se zovu ovako:

$ the_Object-> the_Method ();

PDO vam omogućuje da "pripremite" SQL kod prije nego što se izvrši. SQL upit se evaluira i "ispravlja" prije izvođenja. Na primjer, najjednostavniji SQL injekcijski napad može se postići jednostavnim ubrizgavanjem SQL -a u polje obrasca. Na primjer:

Budući da je ovo sintaksički ispravan SQL, točka -zarez čini DROP DATABASE user_table novim SQL upitom i korisnička tablica se ispušta. Pripremljeni izrazi (vezane varijable) ne dopuštaju zarez i navodnike da dovrše originalni upit, pa se naredba DROP DATABASE nikada neće izvršiti.

Da biste koristili pripremljene izraze, morate napisati novu varijablu koja poziva metodu pripreme () objekta baze podataka.

Tačan kod:

getMessage (); ) // Postavi varijable za osobu koju želimo dodati u bazu podataka $ first_Name = "Thom"; $ last_Name = "Bočica"; $ email = " [zaštićena e -pošta]"; // Kreirajte varijablu koja poziva metodu pripreme () objekta baze podataka // SQL upit koji želite izvršiti unosi se kao parametar, a čuvari mjesta se pišu ovako: mjesto čuvara mjesta $ my_Insert_Statement = $ my_Db_Connection-> pripremiti ( "INSERT INTO Students (name, prezime, email) VALUES (: first_name ,: last_name ,: email)"); je rezervirano mjesto u gornjoj naredbi, druga je varijabla na koju se treba odnositi $ my_Insert_Statement-> bindParam (: first_name, $ first_Name); $ my_Insert_Statement-> bindParam (: last_name, $ last_Name); $ my_Insert_Statement-> bindParam (: email, $ email); // Izvršite upit koristeći podatke koje smo upravo definirali // Metoda execute () vraća TRUE ako je uspješna i FALSE ako nije, dajući vam mogućnost ispisa vlastite poruke ako ($ my_Insert_Statement-> execute ( )) (echo "New reco rdcreatesuccessfully "; ) else (echo "Unable to createrecord";) // Na ovom mjestu možete promijeniti podatke varijable i pokrenuti upit za dodavanje drugih podataka u bazu podataka u bazu podataka $ first_Name = "John"; $ last_Name = "Smith"; $ email = " [zaštićena e -pošta]"; $ my_Insert_Statement-> execute (); // Ponovo izvrši kada se promijeni varijabla if ($ my_Insert_Statement-> execute ()) (echo" New recordcreatedsuccessfully ";) else (echo" Unable to createrecord ";

U redovima 28, 29 i 30 koristimo metodu bindParam () objekta baze podataka. Postoji i metoda bindValue () koja se jako razlikuje od prethodne.

  • bindParam () - Ova metoda procjenjuje podatke kada se dođe do metode execute (). Prvi put kada skripta dođe do metode execute (), vidi da se $ first_Name podudara s "Thom". Zatim veže ovu vrijednost i pokreće zahtjev. Kada skripta dosegne drugu metodu execute (), vidi da se $ first_Name sada podudara s "John". Zatim veže ovu vrijednost i ponovo pokreće upit s novim vrijednostima. Važno je zapamtiti da smo jednom definirali upit i ponovo ga koristili s različitim podacima na različitim mjestima u skripti.
  • bindValue () - Ova metoda procjenjuje podatke čim se dosegne bindValue (). Budući da je $ first_Name postavljeno na "Thom", kada se dosegne bindValue (), on će se koristiti svaki put kada se execute () pozove na $ my_Insert_Statement.
    Imajte na umu da ponovo koristimo varijablu $ first_Name i po drugi put joj dodjeljujemo novu vrijednost. Nakon pokretanja skripte, oba imena će biti navedena u bazi podataka, uprkos činjenici da varijabla $ first_Name na kraju skripte ima vrijednost "John". Upamtite da PHP provjerava cijelu skriptu prije nego što je pokrene.

Ako ažurirate skriptu kako biste zamijenili bindParam sa bindValue, umetnut ćete "Thom Vial" u bazu podataka dvaput, a John Smith će biti zanemaren.

Korak 3 - Potvrda uspjeha i rješavanje problema

Ako je zahtjev za umetanje redova u bazu podataka bio uspješan, vidjet ćemo sljedeću poruku:

Uklanjanje uobičajenih grešaka

MySQLi

U suprotnom će se prikazati poruka o grešci. Na primjer, napravimo jednu sintaksnu grešku u kodu i dobit ćemo sljedeće:

Prvi dio koda je u redu, veza je uspješno uspostavljena, ali SQL upit nije uspio.

"Greška: INSERT INTO Students (ime, prezime, email) VRIJEDNOSTI (" Thom "," Vial "," [zaštićena e -pošta]") Imate grešku u SQL sintaksi; provjerite priručnik koji odgovara verziji vašeg MySQL servera za sintaksu prava za upotrebu u blizini" (ime, prezime, e -pošta) VALUES ("Thom", "Vial", " [zaštićena e -pošta]")" u prvom redu "

Napravljena je sintaksna greška koja je dovela do neuspjeha skripte. Greška je bila ovdje:

$ sql = "INSERT INTO Students (ime, prezime, email) VRIJEDNOSTI (" Thom "," Bočica "," [zaštićena e -pošta]")";

Umjesto običnih koristili smo kovrčave proteze. To nije točno i skripta je generirala sintaksnu grešku.

PDO

Na liniji 7 PDO veze način greške je postavljen na "prikaz svih izuzetaka". Ako je dana druga vrijednost i zahtjev nije uspio, nećemo primiti nikakve poruke o grešci.

Ovo podešavanje treba koristiti samo pri razvoju skripte. Kada se aktivira, mogu se prikazati nazivi baze podataka i tablica, koji su iz sigurnosnih razloga bolje skriveni. U gore opisanom slučaju, kada su umjesto uobičajenih zagrada korištene uvijene zagrade, poruka o grešci izgleda ovako:

Smrtonosna greška: Uncaughtexception "PDOException" sa porukom "SQLSTATE: Sintaksna greška ili povreda pristupa: 1064 Imate grešku u SQL sintaksi; provjerite priručnik koji odgovara vašoj verziji MySQL servera za sintaksu prava za upotrebu u blizini "(ime, prezime, e -pošta) VRIJEDNOSTI (" Thom "," bočica "," [zaštićena e -pošta]")" u prvom redu "

Drugi mogući problemi:

  • Kolone su neispravne (nepostojeće kolone ili pravopisna greška u njihovim imenima).
  • Jedan tip vrijednosti dodijeljen je stupcu drugog tipa. Na primjer, ako pokušate umetnuti broj 47 u stupac Ime, dobit ćete grešku. Morate koristiti vrijednost niza u ovoj koloni. Ali da smo naveli broj pod navodnicima (na primjer, "47"), to bi funkcioniralo, jer je to niz.
  • Pokušano je unošenje podataka u tablicu koja ne postoji. I takođe pravopisna greška u nazivu tabele.

Nakon uspješnog unosa podataka, vidjet ćemo da su dodani u bazu podataka. Ispod je primjer tablice u koju su dodani podaci.

U ovom postu želim vam reći kako prenijeti u bazu podataka unesene podatke u obrazac... I tako stvaramo jednostavan obrazac u kojem ćemo imati dva polja: korisničko ime i njegovu e -poštu:

Tvoje ime:
Vaš email:


Ovaj obrazac se može koristiti za registraciju novog korisnika, za slanje vijesti, za prikupljanje statističkih podataka i za bilo šta ... Općenito, korisnik popunjava svoje podatke u ovaj obrazac: ime i pošta, klik na gumb, a zatim podaci ide u php skriptu:

$ name = $ _POST ["name"]; $ email = $ _POST ["email"]; $ result = mysqli_query ("INSERT INTO user (name, email) VALUES (" $ name "," $ email ")"); if ($ result) (echo "Podaci su uspješno sačuvani!";) else (echo "Došlo je do greške, pokušajte ponovo.";)


Šta se dešava u ovom scenariju? Hajde sad da shvatimo!
Podaci uneti u obrazac prenose se POST metodom u php skriptu (koja je gore napisana), a pomoću globalnog niza $ _POST, podaci se oblikuju u varijable $ name i $ email:

$ name = $ _POST ["name"]; $ email = $ _POST ["email"];


Nakon što su varijable spremne za unos u bazu podataka, sastavljamo zahtjev. Ali prvo, vaše skripte već moraju biti povezane s bazom podataka, kako se povezati s bazom podataka, napisao sam u ovoj temi :. Sam zahtjev izgleda ovako:

$ result = mysqli_query ("INSERT INTO user (name, email) VALUES (" $ name "," $ email ")");


U ovom kodu smo naznačili da će se slijedeće varijable dodati u ćelije imena i e -pošte koje se nalaze u korisničkoj tablici: $ name i $ email.
Nadalje, ako je sve prošlo dobro, primit ćemo poruku iz stanja:

Podaci uspješno sačuvani!


Ako je bilo problema, a podaci nisu unijeti, primit ćemo poruku o grešci:

Došlo je do greške. Pokušajte ponovo.


To je sve!

*** *** *** *** ***

Ako želite, možete dodati još polja za unos podataka, na primjer, moramo dodati polje za unos grada korisnika. Već imamo gotovu skriptu (gore napisanu), sada samo dodajemo polje Tvoj grad, nazvat ćemo varijablu: $ city. I tako u obrascu za unos podataka, nakon:

Vaš email:


dodati:

Vaš grad:


U php skripti, nakon:

$ email = $ _POST ["email"];


dodati:

$ city = $ _POST ["grad"];


I naravno, zahtjevu dodajemo i ovako:

$ result = mysqli_query ("INSERT INTO user (name, email, city) VALUES (" $ name "," $ email "," $ city ")");


Evo na čemu biste trebali završiti:
Obrazac za unos:

Tvoje ime:
Vaš email:
Vaš grad:


Skripta:

$ name = $ _POST ["name"]; $ email = $ _POST ["email"]; $ city = $ _POST ["grad"]; $ result = mysqli_query ("INSERT INTO user (name, email, city) VALUES (" $ name "," $ email "," $ city ")"); if ($ result == true) (echo "Podaci su uspješno sačuvani!";) else (echo "Došlo je do greške, pokušajte ponovo.";)


Kao što vidite, ništa komplikovano! Ako je potrebno, možete dodati još jedno polje, i još, i još ...

U ovom ćemo članku analizirati možda neke od najvažnijih SQL upiti... to upite za dodavanje i uklanjanje zapisa iz tablice baze podataka... S obzirom na to da je JAKO često potrebno dodati nove zapise u tablicu, a da biste to učinili u automatskom načinu rada, tada je ovaj materijal potreban za proučavanje.

Početi SQL upit za dodavanje novog zapisa u tablicu:

INSERT INTO korisnicima (login, pass) vrijednosti ("TestUser", "123456")

Prilikom dodavanja unosa prva naredba je " INSERT INTO", zatim naziv tablice u koju ubacujemo zapis. Slijede nazivi polja koja želimo popuniti u zagradama. A zatim u zagradi iza riječi" vrijednosti"počinjemo ispisivati ​​vrijednosti onih polja koja smo odabrali. Nakon izvršavanja ovog upita, novi zapis će se pojaviti u našoj tablici.

Ponekad je potrebno ažuriranje zapisa u tabeli, za ovo postoji sljedeće SQL upit:

UPDATE users SET login = "TestUser2", pass = "1234560" WHERE login = "TestUser"

Ovaj upit je složeniji jer ima konstrukciju " GDJE", ali više o tome ispod. Prvo dolazi naredba" UPDATE"nakon čega slijedi naziv tablice, nakon čega slijedi" SET"opisujemo vrijednosti svih polja koja želimo promijeniti. Bilo bi jednostavno, ali postavlja se pitanje:" Koji zapis treba ažurirati?". Za ovo postoji" GDJE". U ovom slučaju ažuriramo zapis, polje" Ulogovati se"šta je važno" TestUser". Imajte na umu da, ako postoji nekoliko takvih zapisa, onda apsolutno će se sve ažurirati! Ovo je vrlo važno shvatiti, u protivnom riskirate da izgubite stol.

Hajdemo razgovarati još malo o " GDJE". Osim jednostavnih testova za jednakost, postoje i nejednakosti, kao i logičke operacije: AND i ILI.

UPDATE users SET login = "TestUser2", pass = "1234560" WHERE id< 15 AND login="TestUser"

The SQL upit ažurirat će te zapise id kojih je manje 15 AND polje " Ulogovati se"ima značenje" TestUser"Nadam se da ste shvatili dizajn." GDJE"jer je vrlo važno. Tačno." GDJE"koristi se kada dohvaćanje zapisa iz tablica, a ovo je najčešće korišteni zadatak pri radu s bazama podataka.

I na kraju, jedan jednostavan SQL upit za brisanje zapisa iz tablice:

IZBRIŠI OD korisnika WHERE login = "TestUser2"

Nakon naredbe " IZBRIŠI IZ"je naziv tablice u kojoj želite izbrisati zapise. Zatim opisujemo konstrukciju" WHERE ". Ako zapis odgovara opisanim uvjetima, bit će izbrisan. GDJE", bilo koji broj njih se može izbrisati.

U ovoj lekciji naučit ćemo kako unijeti podatke koje je korisnik unio u obrazac u bazu podataka MySql. Naučit ćete kako se povezati s bazom podataka MySql iz koda web stranice, kao i obraditi i umetnuti podatke u bazu podataka.


U prošloj lekciji sam vam rekao kako instalirati Denver na svoje računalo, kako stvoriti vlastitu bazu podataka, korisnika za nju, kako stvoriti tablicu u bazi podataka i ispunili smo je jednim zapisom.

U ovoj lekciji ćemo stvoriti html dokument za unos korisničkih podataka, kao i php datoteku za obradu ovih informacija, koja će obraditi podatke, povezati se s bazom podataka MySql i tamo umetnuti nove zapise.

Prelazimo s riječi na djela, počnimo.

Dodajte prilagođene podatke u MySql bazu podataka s web stranice

Prvi korak: kreirajte html obrazac za unos podataka

Od samog početka moramo se pripremiti za rad s php -om, MySql -om i testiranje pisanog koda na lokalnom računaru. Za ovo:

1. Pokrenite Denwer na svom računaru.

2. Otvorite virtualni disk koji je stvorio Denver (na primjer, ja imam ovaj disk “Z”). Otvorite ga, zatim: home - localhost - www - tamo stvorite novu fasciklu i dajte joj ime (ja ću dati ime “db1”).

3. Ako radite u Adobe Dreamweaveru, idite na upravitelja web mjesta, kliknite na gumb "Novo", odaberite put do novostvorene mape, u gornjem polju možete dati naziv web lokaciji, a zatim kliknite Spremi - Gotovo. Nakon svega ovoga, vaša mapa će se pojaviti u desnom oknu programa Adobe Dreamweaver.

1. Sada ćemo stvoriti običnu html datoteku (nazvat ćemo je info_form.html i spremiti u novostvorenu mapu db1) i tamo upisati kôd obrasca za unos podataka. Naša tablica korisnika u bazi podataka new_db ima 4 polja koja korisnik može popuniti (polje id će se automatski popuniti). Na osnovu ovoga možete kreirati kod ovako:

Untitled Document










Ovdje u parametru "action" našeg obrasca postoji datoteka form.php... To će biti datoteka za obradu koju ćemo zatim kreirati.

Napravimo i datoteku style.css za oblikovanje našeg obrasca. On je već uključen u kôd, pa preostaje samo da ga kreirate, postavite u istu mapu s html datotekom i u njega upišete sljedeći kôd:

Telo (širina: 400px; margina: 0 auto; pozadina: # F8F4B6;) oznaka (prikaz: blok; float: levo; širina: 150px; padding: 0 10px; margina: 18px 0 0; poravnavanje teksta: desno;) # podnesi (float: desno; margina: 5px 50px 10px 0;)

Obrazac sada izgleda ovako:

Međutim, ako unesete podatke i pokušate poslati obrazac, vidjet ćete grešku jer ne postoji datoteka form.php u direktoriju scripts.

Kreiranje handler datoteke naš je sljedeći zadatak.

2. Uđimo u fasciklu db1 stvorite mapu s imenom "Skripte"... U njemu ćemo spremiti sve naše skripte za interakciju s MySql bazom podataka.

Nakon što se mapa kreira, kreirajte novu php datoteku i spremite je u mapu scripts pod imenom form.php.

No, prije nego što počnete izravno s datotekom za obradu informacija, morate se prvo povezati s našom bazom podataka. Predlažem da za to stvorite zasebnu datoteku i evo zašto:

Najvjerojatnije ćete se u svom projektu morati povezati s bazom podataka MySql ne samo iz jedne datoteke. U pravilu, različite datoteke projekta stupaju u interakciju s bazom podataka.
Vrlo je nepraktično upisivati ​​isti kod za povezivanje baze podataka u svaku takvu datoteku. A ako na primjer postoji 50 takvih datoteka, i jednog dana ćete promijeniti lozinku za korisnika i morat ćete potražiti svih ovih 50 datoteka i izvršiti ispravke u svakoj.
Mnogo je prikladnije koristiti zasebnu datoteku za povezivanje, koja će biti povezana sa svakom od datoteka gdje bi trebala postojati veza s MySql bazom podataka. U ovom slučaju morate ispraviti samo jednu datoteku.

Kreirajmo novu php datoteku, dajmo joj ime connect.php i stavite ga u folder skripti. U njemu ćemo zapisati kôd za povezivanje s našom MySql bazom podataka, kao i kôd koji će prijaviti greške ako do njih dođe. Imajte na umu da ćete kao parametre morati unijeti svoje korisničko ime, lozinku i naziv baze podataka. Domaćin mora biti localhost.

Greška pri povezivanju na bazu podataka! ". mysql_error ()."

"); mysql_select_db (" new_db ") // parametar u zagradama (" naziv baze za povezivanje ") ili die ("

Greška pri odabiru baze podataka! ". mysql_error ()."

"); ?>

Sada idemo na datoteku form.php i povezujemo datoteku connect.php s njom pomoću sljedećeg koda:

Ako sada pokušate poslati obrazac, nakon podnošenja vidjet ćete praznu web stranicu. To je normalno, jer smo se tek povezali s bazom i još ne prikazujemo ništa drugo.

Ako vidite poruku o grešci, provjerite ispravnost svih parametara (korisničko ime, lozinka, naziv hosta: localhos, naziv baze podataka), a također provjerite je li vaš Denver omogućen.

3. Uspješno smo se povezali s bazom podataka MySql i sada nam je potrebna prihvatite podatke unete u obrazac u naš rukovatelj datotekama... Atributi "name", koji su prisutni u html dokumentu, pomoći će nam u tome.

Za dobivanje podataka koristit ćemo posebnu php varijabla koji nam daje sve informacije iz web obrasca. Ova varijabla se zove “$ _REQUEST”.

Nakon povezivanja datoteke connect.php, dodajte sljedeći kôd u datoteku form.php:

$ first_name = $ _REQUEST ["first_name"]; $ last_name = $ _REQUEST ["last_name"]; $ email = $ _REQUEST ["email"]; $ facebook = $ _REQUEST ["facebook"];

4. Primili smo podatke u datoteku i stavili ih u varijable. Sada vam treba pošaljite ove podatke u našu tablicu baze podataka MySql... Da biste to učinili, u nastavku morate napisati sljedeći kod:

$ insert_sql = "INSERT INTO korisnici (ime_prezime, imejl, facebook)". "VALUES (" ($ first_name) "," ($ last_name) "," ($ email) "," ($ facebook) ");"; mysql_query ($ insert_sql);

Ovdje prvo formiramo upit, rekavši da moramo umetnuti odgovarajuće varijable u odgovarajuća polja tablice "korisnici". Ovaj upit smo stavili u varijablu “$ insert_sql”. Zatim, pomoću posebne funkcije mysql_query, izvršavamo ovaj upit.

Ako sada ispunite i pošaljete obrazac, a zatim pogledate tablicu "korisnici" vaše baze podataka, vidjet ćete novi zapis koji se tamo pojavio nakon podnošenja.

5. U tablicu baze podataka MySql umetnuli smo novi zapis sa web stranice. Sada se želim dotaknuti formata u koji su naši podaci umetnuti.

Prvo, morate se pobrinuti za situaciju kada osoba koja ispunjava obrazac može staviti nepotrebne razmake na početak unosa podataka. Treba ih rezati.

Drugo, imamo polje za Facebook. Ako u budućnosti želimo prikazati ove podatke kao vezu, tada moramo voditi računa da se podaci u ovom polju pohrane u ispravnom formatu (npr. "Http://www.facebook.com/ facebook id"). Ali korisnik neće uvijek unijeti te podatke onako kako su nam potrebni. Može unijeti: “www.facebook.com/ facebook id”, “facebook.com/ facebook id” ili jednostavno “/ facebook id”.

Ove situacije treba izbjegavati. Da bismo to učinili, prilagodimo naš kôd. Odrezali smo moguće dodatne prostore pomoću funkcije podrezati, a funkcija će provjeriti ispravnost unesenog url -a za facebook preg_match... Stoga će cijeli kôd datoteke form.php izgledati ovako:

Untitled Document Novi zapis je umetnut u bazu podataka!

"; ?>

O funkciji preg_match:
Ovo je funkcija za pretraživanje pomoću regularnih izraza.

Prvi parametar u zagradama je regularni izraz, drugi je niz koji treba tražiti.

Funkcija vraća samo prvo podudaranje: 0 - ako nema podudaranja, 1 - ako postoji podudaranje.

Sada pokušajte namjerno ispuniti obrazac tako što ćete napraviti nepotrebne razmake na početku popunjavanja bilo kojeg od polja i unijeti adresu za facebook bez http: // ili čak unijeti samo facebook ID. Pošaljite zahtjev, a zatim idite u bazu podataka i vidjet ćete da uprkos ne sasvim ispravnom popunjavanju, podaci imaju upravo onu formu koja nam je potrebna.

O tome ću završiti ovu lekciju. Sve datoteke ove lekcije možete preuzeti u izvoru (samo ne zaboravite promijeniti parametre u svoje u datoteci connect.php).

U sljedećoj lekciji naučit ćemo kako dohvatiti informacije iz baze podataka MySql, odaberite obavezni unosi i prikazati ih na ekranu. Kako ne biste propustili sljedeću lekciju, pretplatite se na ažuriranja blogova koristeći obrazac za pretplatu koji vidite ispod.

Ostavite svoje komentare i podijelite sa prijateljima pomoću dugmadi na društvenim mrežama.

Sretno i vidimo se na sljedećoj lekciji!

U ovom vodiču ćemo pogledati kako umetnuti podatke u bazu podataka direktno iz vaših PHP skripti.

Umetanje podataka pomoću SQL -a

SQL koristite za umetanje podataka u bazu podataka na isti način na koji koristite SQL za kreiranje baza podataka i tablica. Sintaksa za SQL upit je sljedeća:

INSERT INTO TableName (kolona1, kolona 2, ...) VRIJEDNOSTI (vrijednost1, vrijednost 2, ...)

Kao što vidite, možete ažurirati više stupaca u jednom SQL izrazu tako da ih navedete na listi odvojenoj zarezima. Naravno, možete navesti i samo jednu kolonu i jednu vrijednost. Stupci koji nisu spomenuti u ovom SQL izrazu ostat će prazni.

Primjer: Umetanje nove osobe u tablicu

U ovom primjeru koristimo bazu podataka iz lekcije 18. Recimo da želimo ubaciti osobu u bazu podataka. To može biti Gus guska sa brojem telefona 99887766 i datum rođenja 1964-04-20 .

SQL izraz može izgledati ovako:

$ strSQL = "INSERT INTO people (FirstName, LastName, Phone, BirthDate) VALUES (" Gus "," Goose "," 99887766 "," 1964-04-20 ")";

Kao što vidite, SQL izrazi mogu biti prilično dugački i lako se možete izgubiti. Stoga je bolje napisati SQL izraz malo drugačije:

strSQL = "INSERT INTO people ("; strSQL = strSQL. "Ime,"; strSQL = strSQL. "Prezime," strSQL = strSQL. "Telefon"; strSQL = strSQL. "rođenje)"; strSQL = strSQL. "VALUES ("; strSQL = strSQL. "" Gus ","; strSQL = strSQL. "" Goose ","; strSQL = strSQL. "" 99887766 ","; strSQL = strSQL. "" 1964-04-20 ")"; mysql_query ($ strSQL) ili die (mysql_error ());

Ovdje se SQL izraz gradi tako da se izraz podijeli na male dijelove, a zatim ih spoji u varijablu. $ strSQL.

U praksi nema razlike u primjeni jedne ili druge metode, ali pri radu s velikim tablicama postaje izuzetno važno biti u mogućnosti "pratiti", pa odaberite najprikladniju metodu.

Pokušajmo sa sljedećim kodom da umetnemo Gus Goose u bazu podataka:

Umetanje podataka u bazu podataka // Povežite se s poslužiteljem baze podataka mysql_connect ("mysql.myhost.com", "korisnik", "sezam") ili umri (mysql_error ());// Odabir baze podataka mysql_select_db ("mydatabase") ili die (mysql_error ()); // Sastavljanje SQL izraza $ strSQL = "INSERT INTO people ("; $ strSQL = $ strSQL. "Ime,"; $ strSQL = $ strSQL. "Prezime,"; $ strSQL = $ strSQL. "Telefon"; $ strSQL = $ strSQL. "Datum rođenja)"; $ strSQL = $ strSQL. "VRIJEDNOSTI ("; $ strSQL = $ strSQL. "" Gus ","; $ strSQL = $ strSQL. "" Goose ","; $ strSQL = $ strSQL. "" 99887766 ","; $ strSQL = $ strSQL. "" 1964-04-20 ")"; // SQL izraz se izvršava mysql_query ($ strSQL) ili die (mysql_error ()); // Zatvorite vezu mysql_close (); ?>

Baza podataka je ažurirana!

Spremanje korisničkog unosa u bazu podataka

Vjerojatno ste već shvatili da za to možete stvoriti obrazac, kao u lekciji 11, a vrijednosti iz obrasca mogu se umetnuti u SQL izraz. Pretpostavimo da imate jednostavan oblik:

Ovaj obrazac se predaje u datoteku insert.php gdje, kao što je prikazano u lekciji 11, možete dobiti korisnički unos zahtjevom za sadržaj obrasca. U ovom konkretnom slučaju SQL izraz može biti sljedeći:

strSQL = "INSERT INTO people (FirstName) values ​​(" ". $ _POST [" FirstName "]." ")" "

Slično, možete zatražiti podatke za kolačiće, sesije, nizove upita itd.

Najčešće greške početnika

U početku ćete vjerojatno dobiti hrpu poruka o grešci pri pokušaju ažuriranja baze podataka. Prilikom rada s bazom podataka, greške su apsolutno neprihvatljive. Neispravno postavljeni zarez može značiti da se baza podataka ne ažurira, a dobit ćete poruku o grešci. U nastavku opisujemo najčešće greške.

Nevažeći tip podataka

Važno je da se podaci i tip podataka kolone podudaraju. Svaka kolona može sadržavati podatke određene vrste. Sljedeći snimak zaslona prikazuje tipove podataka tablice "ljudi" iz našeg primjera.

Greška se javlja ako, na primjer, pokušate umetnuti tekst ili broj u polje s podacima. Stoga postavite tip podataka što je preciznije moguće.

Najčešći tipovi podataka navedeni su u nastavku:

Značenje Tip podataka Veličina
CHR
Tekst ili kombinacija teksta i brojeva. Može se koristiti i za brojeve koji se ne koriste u proračunima (npr. Telefonski brojevi). Do 255 znakova - bilo koja dužina navedena u "Dužina"
TEKST
Veliki blokovi teksta ili kombinacija teksta i brojeva. Do 65.535 znakova
INT
Numerički podaci za matematičke proračune. 4 bajta
DATE
Datumi u formatu GGG-MM-DD 3 bajta
VRIJEME
Vrijeme u hh: mm: ss formatu 3 bajta
DATETIME
Datum i vrijeme u formatu GGG-MM-DD hh: mm: ss 8 bajtova

SQL izrazi s navodnicima ili obrnutim crtama

Ako pokušate umetnuti tekst koji sadrži znakove navodnika ("), dvostruke navodnike (") ili obrnute kose crte (\), zapis neće biti umetnut u bazu podataka. Rješenje je zamjena obrnutih kosih crta ispred znakova koje treba mnemonizirati kada se ubace u upite baze podataka.