Pridávanie údajov do sql php tabuľky. Pridávanie údajov do PHP

V tomto článku sa pozrieme na to, ako používať PHP na vkladanie riadkov do databázy MySQL.

Krok 1 - vytvorenie tabuľky

Najprv musíte vytvoriť tabuľku pre údaje. Toto je jednoduchý postup, ktorý je možné vykonať pomocou phpMyAdmin na ovládacom paneli hostiteľa.

Po prihlásení sa vám phpMyAdmin zobrazí nasledujúce rozhranie:

Vytvorme tabuľku s názvom Študenti v databáze u266072517_name kliknutím na tlačidlo „Vytvoriť tabuľku“. Potom sa zobrazí nová stránka, na ktorej nastavíme všetky potrebné parametre tabuľky:

Toto je najjednoduchšie nastavenie, ktoré je možné použiť pre tabuľku a získať viac informácií o štruktúre tabuliek / databáz.

Možnosti stĺpcov:

  • Názov je názov stĺpca, ktorý sa zobrazuje v hornej časti tabuľky.
  • Typ - typ stĺpca. Vybrali sme napríklad varchar, pretože budeme zadávať reťazcové hodnoty.
  • Dĺžka / hodnoty- používa sa na označenie maximálnej dĺžky, ktorú môže mať záznam v tomto stĺpci.
  • Register - pre pole „ID“ sme použili index „Primárny“. Pri vytváraní tabuľky sa odporúča použiť iba jeden stĺpec ako primárny kľúč. Slúži na vypísanie záznamov v tabuľke a je potrebný pri nastavovaní tabuľky. Tiež som označil „A_I“, čo znamená „Auto Increment“ - parameter na automatické priradenie počtu záznamov (1,2,3,4 ...).
    Kliknite na tlačidlo „Uložiť“ a tabuľka sa vytvorí.

Krok 2. Zapísanie kódu PHP na vloženie údajov do MySQL.

Možnosť 1 - metóda MySQLi

Najprv musíte vytvoriť pripojenie k databáze. Potom použijeme dotaz SQL INSERT. Kompletný príklad kódu:

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

Prvá časť kódu (riadky 3 - 18) je na pripojenie k databáze.

Začnime riadkom 19:

$ sql = "Vložiť do študentov (meno, priezvisko, e -mail) HODNOTY (" Thom "," Vial "," [chránené e -mailom]")";

Vkladá údaje do databázy MySQL. INSERT INTO je príkaz, ktorý pridáva údaje do zadanej tabuľky. V našom prípade sú údaje pridané do tabuľky Študenti.

Ďalej nasleduje vymenovanie stĺpcov, do ktorých sú vložené hodnoty: meno, priezvisko, e -mail. Údaje budú doplnené v uvedenom poradí. Ak by sme napísali (e -mail, priezvisko, meno), hodnoty by boli pridané v inom poradí.

Ďalšou časťou je operátor HODNOTY. Tu určujeme hodnoty pre stĺpce: name = Thom, lastname = Vial, email = [chránené e -mailom]

Spustili sme žiadosť pomocou kódu PHP. V kóde musia byť citované dotazy SQL. Ďalšia časť kódu (riadky 20-22) kontroluje, či bola naša žiadosť úspešná:

if (mysqli_query ($ conn, $ sql)) (echo „Nový záznam vytvorený úspešne“;)

Tento kód zobrazuje správu o úspešnom dokončení žiadosti.

A posledná časť (22 - 24 riadkov) zobrazuje upozornenie, ak žiadosť nebola úspešná:

else (echo "Chyba:". $ sql. "
". mysqli_error ($ conn);)

Možnosť 2 - Metóda dátového objektu PHP (PDO)

Najprv sa musíme pripojiť k databáze vytvorením nového objektu PDO. Pri práci s ním použijeme rôzne metódy PDO. Objektové metódy sa nazývajú takto:

$ the_Object-> the_Method ();

PDO vám umožňuje „pripraviť“ kód SQL pred jeho spustením. Dotaz SQL sa pred spustením vyhodnotí a „opraví“. Napríklad najjednoduchší injekčný útok SQL je možné dosiahnuť jednoduchým vložením SQL do poľa formulára. Napríklad:

Pretože je to syntakticky správny SQL, bodkočiarka robí z DROP DATABASE user_table nový dotaz SQL a užívateľská tabuľka sa zruší. Pripravené výrazy (viazané premenné) neumožňujú stredníkom a úvodzovkám dokončiť pôvodný dotaz, takže príkaz DROP DATABASE nebude nikdy vykonaný.

Ak chcete použiť pripravené príkazy, musíte napísať novú premennú, ktorá volá metódu Prepar () objektu databázy.

Správny kód:

getMessage (); ) // Nastaviť premenné pre osobu, ktorú chceme pridať do databázy $ first_Name = "Thom"; $ last_Name = "Fialka"; $ email = " [chránené e -mailom]"; // Vytvorte premennú, ktorá volá metódu Prepar () databázového objektu // Dotaz SQL, ktorý chcete vykonať, sa zadá ako parameter a zástupné symboly sa zapisujú takto: zástupný názov_názov $ my_Insert_Statement = $ my_Db_Connection-> pripraviť ( "INSERT INTO Students (name, lastname, email) VALUES (: first_name ,: last_name ,: email)");); // Teraz povieme skriptu, ktorá premenná odkazuje na každý zástupný symbol, aby použil metódu bindParam () // Prvý parameter je zástupný symbol vo vyššie uvedenom výkaze, druhá je premenná, na ktorú by sa mala vzťahovať $ my_Insert_Statement-> bindParam (: first_name, $ first_Name); $ my_Insert_Statement-> bindParam (: last_name, $ last_Name); $ my_Insert_Statement-> bindParam (: e-mail, $ email); // Vykonajte požiadavku pomocou údajov, ktoré sme práve definovali // Metóda execute () vráti hodnotu TRUE, ak je úspešná, a FALSE, ak nie, poskytne vám možnosť vytlačiť si vlastnú správu, ak ($ ​​my_Insert_Statement-> execute ( )) (echo „Nové odporúčanie rdvytvorené úspešne "; ) else (echo "Nedá sa vytvoriť záznam";) // V tomto mieste môžete zmeniť údaje premenných a spustiť dotaz na pridanie ďalších údajov k údajom databázy do databázy $ first_Name = "John"; $ last_Name = "Smith"; $ email = " [chránené e -mailom]"; $ my_Insert_Statement-> execute (); // Spustí sa znova pri zmene premennej, ak ($ ​​my_Insert_Statement-> execute ()) (echo" New recordcreatedsuccessfully ";) else (echo" Unable to createterecord ";

Na riadkoch 28, 29 a 30 používame metódu bindParam () databázového objektu. Existuje aj metóda bindValue (), ktorá sa veľmi líši od predchádzajúcej.

  • bindParam () - Táto metóda vyhodnocuje údaje, keď je dosiahnutá metóda execute (). Keď skript prvýkrát dosiahne metódu execute (), zistí, že $ first_Name sa zhoduje s „Thom“. Potom spojí túto hodnotu a spustí požiadavku. Akonáhle skript dosiahne druhú metódu execute (), vidí, že $ first_Name sa teraz zhoduje s „John“. Potom spojí túto hodnotu a znova spustí dotaz s novými hodnotami. Je dôležité si uvedomiť, že sme raz definovali dotaz a znova ho použili s rôznymi údajmi v rôznych bodoch skriptu.
  • bindValue () - Táto metóda vyhodnocuje údaje hneď, ako sa dosiahne bindValue (). Pretože bol $ first_Name nastavený na „Thom“, pri dosiahnutí parametra bindValue () sa použije vždy, keď sa na $ my_Insert_Statement zavolá príkaz execute ().
    Všimnite si toho, že znova používame premennú $ first_Name a druhýkrát jej priradíme novú hodnotu. Po spustení skriptu budú v databáze uvedené obidve mená, a to napriek tomu, že premenná $ first_Name na konci skriptu má hodnotu „John“. Nezabudnite, že PHP pred spustením skontroluje celý skript.

Ak skript aktualizujete tak, aby nahradil bindParam parametrom bindValue, dvakrát vložíte „Thom Vial“ do databázy a John Smith bude ignorovaný.

Krok 3 - Potvrdenie úspechu a riešenie problému

Ak bola požiadavka na vloženie riadkov do databázy úspešná, zobrazí sa nasledujúce hlásenie:

Odstránenie bežných chýb

MySQLi

V opačnom prípade sa zobrazí chybové hlásenie. Urobme napríklad jednu chybu syntaxe v kóde a dostaneme nasledujúce:

Prvá časť kódu je v poriadku, pripojenie bolo úspešne nadviazané, ale dotaz SQL zlyhal.

"Chyba: VLOŽIŤ DO študenti (meno, priezvisko, e -mail) HODNOTY (" Thom "," Vial "," [chránené e -mailom]") Máte chybu v syntaxe SQL; v príručke, ktorá zodpovedá verzii vášho servera MySQL, nájdete správnu syntax v blízkosti hodnôt (meno, priezvisko, e -mail) („ Thom “,„ Vial “,„ [chránené e -mailom]")" na riadku 1 "

Vyskytla sa chyba syntaxe, ktorá spôsobila zlyhanie skriptu. Chyba bola tu:

$ sql = "Vložiť do študentov (meno, priezvisko, e -mail) HODNOTY (" Thom "," Vial "," [chránené e -mailom]")";

Namiesto bežných sme použili kučeravé rovnátka. Toto je nesprávne a skript vygeneroval chybu syntaxe.

PDO

Na riadku 7 pripojenia PDO je chybový režim nastavený na „zobraziť všetky výnimky“. Ak by bola zadaná iná hodnota a žiadosť by zlyhala, nedostali by sme žiadne chybové správy.

Toto nastavenie by sa malo použiť iba pri vývoji skriptu. Po aktivácii sa môžu zobraziť názvy databázy a tabuliek, ktoré je lepšie skryť z bezpečnostných dôvodov. Vo vyššie uvedenom prípade, keď sa namiesto bežných zátvoriek použili zložené zátvorky, chybové hlásenie vyzerá takto:

Fatal error: Uncaughtexception "PDOException" with message "SQLSTATE: Syntax error or accessviolation: 1064 Máte chybu v syntaxe SQL; v príručke, ktorá korešponduje s vašou verziou servera MySQL, je správna syntax, ktorá sa má používať v blízkosti HODNOTY „(meno, priezvisko, e -mail) („ Thom “,„ liekovka “,„ [chránené e -mailom]")" na riadku 1 "

Ďalšie možné problémy:

  • Stĺpce sú nesprávne (neexistujúce stĺpce alebo pravopisná chyba v názvoch).
  • Jeden typ hodnoty je priradený k stĺpcu iného typu. Ak sa napríklad pokúsite vložiť číslo 47 do stĺpca Názov, zobrazí sa chyba. V tomto stĺpci musíte použiť reťazcovú hodnotu. Ak by sme však uviedli číslo v úvodzovkách (napríklad „47“), fungovalo by to, pretože ide o reťazec.
  • Bol vykonaný pokus o zadanie údajov do neexistujúcej tabuľky. A tiež pravopisná chyba v názve tabuľky.

Po úspešnom zadaní údajov uvidíme, že boli pridané do databázy. Nasleduje príklad tabuľky, do ktorej boli pridané údaje.

V tomto príspevku vám chcem povedať ako preniesť do databázy zadané údaje vo formulári... A tak vytvoríme jednoduchý formulár, kde budeme mať dve polia: používateľské meno a jeho e -mail:

Tvoje meno:
Tvoj email:


Tento formulár je možné použiť na registráciu nového používateľa, na odosielanie noviniek, zbieranie štatistík a na čokoľvek ... Vo všeobecnosti používateľ zadáva svoje údaje do tohto formulára: meno a mail, klikne na tlačidlo a potom na údaje prejde do skriptu php:

$ name = $ _POST ["name"]; $ email = $ _POST ["email"]; $ result = mysqli_query ("INSERT INTO user (name, email) VALUES (" $ name "," $ email ")"); ak ($ ​​result) (echo „Údaje boli úspešne uložené!“;) else (echo „Vyskytla sa chyba, skúste to znova.“;)


Čo sa deje v tomto scenári? Poďme na to teraz!
Údaje zadané do formulára sa metódou POST prenesú do skriptu php (ktorý je napísaný vyššie) a pomocou globálneho poľa $ _POST sa údaje sformujú do premenných $ name a $ email:

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


Potom, čo sú premenné pripravené na vloženie do databázy, zostavíme požiadavku. Ale najskôr musia byť vaše skripty už pripojené k databáze, ako sa pripojiť k databáze, som napísal v tomto vlákne :. Samotná žiadosť vyzerá takto:

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


V tomto kóde sme naznačili, že do buniek mena a e -mailu, ktoré sa nachádzajú v tabuľke používateľov, budú pridané nasledujúce premenné: $ name a $ email.
Ďalej, ak všetko prebehlo dobre, dostaneme správu z podmienky:

Údaje boli úspešne uložené!


Ak sa vyskytnú problémy a údaje neboli zadané, zobrazí sa chybové hlásenie:

Vyskytla sa chyba. Skúste to znova.


To je všetko!

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

Ak chcete, môžete pridať ďalšie polia na zadávanie informácií, napríklad musíme pridať pole na zadanie mesta používateľa. Už máme pripravený skript (napísaný vyššie), teraz len pridáme pole Tvoje mesto, premennú pomenujeme: $ mesto. A tak vo formulári na zadávanie údajov po:

Tvoj email:


pridať:

Tvoje mesto:


V skripte php po:

$ email = $ _POST ["email"];


pridať:

$ mesto = $ _POST ["mesto"];


A samozrejme pridávame žiadosť aj takto:

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


Tu by ste mali skončiť:
Vstupný formulár:

Tvoje meno:
Tvoj email:
Tvoje mesto:


Scenár:

$ name = $ _POST ["name"]; $ email = $ _POST ["email"]; $ mesto = $ _POST ["mesto"]; $ result = mysqli_query ("INSERT INTO user (name, email, city) VALUES (" $ name "," $ email "," $ city ")"); if ($ result == true) (echo "Údaje boli úspešne uložené!";) else (echo "Vyskytla sa chyba, skúste to znova.";)


Ako vidíte, nič zložité! V prípade potreby môžete pridať ďalšie pole a ďalšie a ďalšie ...

V tomto článku budeme analyzovať niektoré z najdôležitejších Dotazy SQL... to dotazy na pridávanie a odstraňovanie záznamov z databázovej tabuľky... Pretože, VEĽMI často je to nevyhnutné pridať nové záznamy do tabuľky, a aby to urobili v automatickom režime, potom je tento materiál potrebný na štúdium.

Začať Dotaz SQL na pridanie nového záznamu do tabuľky:

VLOŽIŤ DO UŽÍVATEĽOV (prihlasovacie údaje, heslo) („TestUser“, „123456“)

Pri pridávaní položky je prvým príkazom „ VLOŽIŤ DO", potom názov tabuľky, do ktorej vložíme záznam. Ďalej nasledujú názvy polí, ktoré chceme vyplniť v zátvorkách. A potom v zátvorkách za slovom" hodnoty"začíname vypisovať hodnoty tých polí, ktoré sme vybrali. Po vykonaní tohto dotazu sa v našej tabuľke objaví nový záznam."

Niekedy to trvá aktualizovať záznam v tabuľke Na to existuje nasledujúce Dotaz SQL:

UPDATE užívateľov SET login = "TestUser2", pass = "1234560" WHERE login = "TestUser"

Tento dotaz je zložitejší, pretože má konštrukciu " KDE", Ale viac o tom nižšie. Najprv príde príkaz" AKTUALIZÁCIA"nasleduje názov tabuľky a za ním" NASTAVIŤ"Popisujeme hodnoty všetkých polí, ktoré chceme zmeniť. Bolo by to jednoduché, ale ponúka sa otázka:" Ktorý záznam by ste mali aktualizovať?". Na to existuje" KDE". V tomto prípade aktualizujeme záznam, pole" Prihlásiť sa"na čom záleží" TestUser". Upozorňujeme, že ak existuje niekoľko takýchto záznamov, potom úplne všetko bude aktualizované! Toto je veľmi dôležité pochopiť, inak riskujete stratu stola.

Porozprávajme sa trochu viac o " KDE". Okrem jednoduchých testov rovnosti existujú aj nerovnosti a logické operácie: A a ALEBO.

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

The Dotaz SQL tieto záznamy aktualizuje id ktorých je menej 15 A lúka " Prihlásiť sa"má význam" TestUser„. Dúfam, že si prišiel na dizajn.“ KDE„Pretože je to veľmi dôležité. Presne.“ KDE„používa sa, keď načítanie záznamov z tabuliek, a toto je najčastejšie používaná úloha pri práci s databázami.

A na záver jednoduchá Dotaz SQL na odstránenie záznamov z tabuľky:

ODSTRÁNIŤ OD užívateľov WHERE prihlásenie = "TestUser2"

Po príkaze " ODSTRÁNIŤ Z"je názov tabuľky, z ktorej chcete odstrániť záznamy. Ďalej popíšeme konštrukciu" KDE ". Ak záznam zodpovedá popísaným podmienkam, bude odstránený. KDE“, je možné odstrániť ľubovoľný počet z nich.

V tejto lekcii sa naučíme, ako zadávať údaje zadané používateľom do formulára do databázy MySql. Naučíte sa, ako sa pripojiť k databáze MySql z kódu webovej stránky, ako aj spracovávať a vkladať údaje do databázy.


V minulej lekcii som vám povedal, ako nainštalovať Denver do počítača, ako vytvoriť vlastnú databázu, jej používateľa, ako vytvoriť tabuľku v databáze a vyplnili sme ju jedným záznamom.

V tejto lekcii vytvoríme html dokument na zadávanie informácií o používateľovi, ako aj php súbor na spracovanie týchto informácií, ktorý spracuje údaje, pripojí sa k databáze MySql a vloží tam nové záznamy.

Prejdime od slov k činom a začnime.

Pridajte vlastné údaje do databázy MySql z webovej stránky

Prvý krok: Vytvorte html formulár na zadávanie údajov

Od samého začiatku sa musíme pripraviť na prácu s php, MySql a testovanie napísaného kódu na lokálnom počítači. Pre to:

1. Spustite Denwer na počítači.

2. Otvorte virtuálny disk vytvorený Denverom (napríklad mám tento disk „Z“). Otvorte ho a potom: domov - localhost - www - tam vytvorte nový priečinok a pomenujte ho (dám názov „db1“).

3. Ak pracujete v programe Adobe Dreamweaver, prejdite na správcu stránok, tam kliknite na tlačidlo „Nové“, ako cestu vyberte cestu k novovytvorenému priečinku, v poli vyššie môžete web pomenovať a potom kliknite na položku Uložiť - Hotovo. Potom sa váš priečinok zobrazí na pravom paneli programu Adobe Dreamweaver.

1. Teraz vytvoríme bežný html súbor (nazvime ho info_form.html a uložíme do priečinka db1, ktorý sme práve vytvorili) a napíšeme tam kód formulára na zadanie informácií. Naša tabuľka používateľov v databáze new_db má 4 polia, ktoré mohol užívateľ vyplniť (pole id sa vyplní automaticky). Na základe toho môžete vytvoriť kód takto:

Dokument bez názvu










Tu v parametri „akcia“ nášho formulára existuje súbor form.php... Bude to súbor obsluhy, ktorý vytvoríme ďalej.

Vytvorme tiež súbor style.css, aby sme mohli štylizovať náš formulár. Je už zahrnutý v kóde, takže zostáva len ho vytvoriť, vložiť do rovnakého priečinka ako súbor html a napísať doň nasledujúci kód:

Text (šírka: 400 pixelov; okraj: 0 auto; pozadie: # F8F4B6;) štítok (displej: blok; float: vľavo; šírka: 150 pixelov; výplň: 0 10 pixelov; okraj: 18 pixelov 0 0; zarovnanie textu: vpravo;) # odoslať (float: vpravo; okraj: 5 pixelov 50 pixelov 10 pixelov 0;)

Formulár teraz vyzerá takto:

Ak však zadáte údaje a pokúsite sa odoslať formulár, zobrazí sa chyba, pretože v adresári skriptov neexistuje žiadny súbor form.php.

Vytvorenie súboru obsluhy je našou ďalšou úlohou.

2. Prejdeme do priečinka db1 vytvorte priečinok s názvom "Skripty"... V ňom uložíme všetky naše skripty na interakciu s databázou MySql.

Po vytvorení priečinka vytvorte nový súbor php a uložte ho do priečinka skriptov pod názvom form.php.

Ale skôr ako začnete priamo so súborom obsluhy informácií, musíte sa najskôr pripojiť k našej databáze. Navrhujem vytvoriť na to samostatný súbor a tu je dôvod:

S najväčšou pravdepodobnosťou sa vo svojom projekte budete musieť pripojiť k databáze MySql nielen z jedného súboru. S databázou spravidla interagujú rôzne súbory projektu.
Je veľmi nepraktické napísať do každého takého súboru rovnaký kód pripojenia k databáze. A ak existuje napríklad 50 takýchto súborov a jedného dňa zmeníte heslo používateľa a budete musieť všetkých týchto 50 súborov vyhľadať a v každom vykonať opravu.
Oveľa pohodlnejšie je použiť na pripojenie samostatný súbor, ktorý bude pripojený ku každému zo súborov, kde by malo byť pripojenie k databáze MySql. V takom prípade budete musieť vykonať opravy iba v jednom súbore.

Vytvorme teda nový súbor php, pomenujme ho connect.php a vložte ho do priečinka skriptov. V ňom zapíšeme kód pre pripojenie k našej databáze MySql, ako aj kód, ktorý bude hlásiť chyby, ak sa vyskytnú. Upozorňujeme, že ako parametre budete musieť zadať svoje používateľské meno, heslo a názov databázy. Hostiteľ musí byť localhost.

Chyba pri pripájaní k databáze! ". mysql_error ()."

"); mysql_select_db (" new_db ") // parameter v zátvorkách (" názov základne, ku ktorej sa chcete pripojiť ") alebo die ("

Chyba výberu databázy! ". mysql_error ()."

"); ?>

Teraz prejdeme k súboru form.php a pripojíme k nemu súbor connect.php pomocou nasledujúceho kódu:

Ak sa pokúsite odoslať formulár teraz, po odoslaní sa zobrazí prázdna webová stránka. To je v poriadku, pretože sme sa práve pripojili k základni a zatiaľ nič iné nezobrazujeme.

Ak sa zobrazí chybové hlásenie, skontrolujte správnosť všetkých parametrov (používateľské meno, heslo, názov hostiteľa: localhos, názov databázy) a tiež sa uistite, že je váš Denver povolený.

3. Úspešne sme sa pripojili k databáze MySql a teraz potrebujeme prijmite údaje zadané do formulára do nášho obslužného programu súborov... Pomôžu nám s tým atribúty „názov“, ktoré sa nachádzajú v html dokumente.

Na získanie údajov použijeme špeciálnu premennú php, ktorá nám poskytne všetky informácie z webového formulára. Táto premenná má názov „$ _REQUEST“.

Po pripojení súboru connect.php pridajte do súboru form.php nasledujúci kód:

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

4. Dostali sme údaje do súboru a vložili ich do premenných. Teraz potrebujete pošlite tieto údaje do našej databázovej tabuľky MySql... Na tento účel musíte napísať nasledujúci kód:

$ insert_sql = "VLOŽIŤ DO UŽÍVATEĽOV (krstné meno, priezvisko, e -mail, facebook)". "VALUES (" ($ first_name) "," ($ last_name) "," ($ email) "," ($ facebook) ");"; mysql_query ($ insert_sql);

Tu najskôr vytvoríme dotaz s tým, že musíme vložiť príslušné premenné do zodpovedajúcich polí tabuľky „používatelia“. Tento dotaz sme vložili do premennej „$ insert_sql“. A potom pomocou špeciálnej funkcie mysql_query vykonáme tento dotaz.

Ak teraz vyplníte a odošlete formulár a potom sa pozriete do tabuľky „Používatelia“ vo svojej databáze, uvidíte nový záznam, ktorý sa tam objavil po odoslaní.

5. Do databázy MySql sme vložili nový záznam z webovej stránky. Teraz sa chcem trocha dotknúť formátu, v ktorom sú vložené naše údaje.

Najprv sa musíte postarať o situáciu, keď osoba vypĺňajúca formulár môže na začiatku zadávania informácií vložiť zbytočné medzery. Je potrebné ich rezať.

Za druhé, máme pole na Facebooku. Ak chceme v budúcnosti tieto informácie zobrazovať ako odkaz, potom musíme dbať na to, aby údaje v tomto poli boli uložené v správnom formáte (tj. „Http://www.facebook.com/ facebook id“). Používateľ však tieto údaje nie vždy zadá tak, ako ich potrebujeme. Môže zadať: „www.facebook.com/ facebook id“, „facebook.com/ facebook id“ alebo jednoducho „/ facebook id“.

Týmto situáciám sa treba vyhnúť. Aby sme to urobili, vyladíme náš kód. Pomocou funkcie sme odrezali prípadné medzery orezať, a funkcia skontroluje správnosť zadanej adresy URL pre facebook preg_match... Celý kód súboru form.php teda bude vyzerať takto:

Dokument bez názvu Nový záznam bol vložený do databázy!

"; ?>

O funkcii preg_match:
Je to funkcia na vyhľadávanie pomocou regulárnych výrazov.

Prvý parameter v zátvorkách je regulárny výraz, druhý je reťazec, ktorý sa má vyhľadať.

Funkcia vráti iba prvú zhodu: 0 - ak nie sú žiadne zhody, 1 - ak dôjde k zhode.

Teraz skúste zámerne vyplniť formulár, pričom na začiatku vypĺňania ktoréhokoľvek z polí urobte zbytočné medzery a zadajte adresu pre facebook bez http: // alebo dokonca zadajte iba facebook ID. Pošlite žiadosť a potom choďte do databázy a uvidíte, že napriek nie úplne správnemu vyplneniu majú údaje presne taký tvar, aký potrebujeme.

Týmto ukončím túto lekciu. Všetky súbory z tejto lekcie si môžete stiahnuť do zdroja (nezabudnite však zmeniť parametre na vlastné v súbore connect.php).

A v ďalšej lekcii sa naučíme extrahovať informácie z databázy MySql, vybrať potrebné záznamy a zobraziť ich na obrazovke. Aby ste nevynechali ďalšiu lekciu, prihláste sa na odber aktualizácií blogu pomocou prihlasovacieho formulára, ktorý vidíte nižšie.

Zanechajte svoje komentáre a zdieľajte ich so svojimi priateľmi pomocou tlačidiel sociálnych médií.

Veľa šťastia a vidíme sa v ďalšej lekcii!

V tomto návode sa pozrieme na to, ako vkladať údaje do databázy priamo z vašich skriptov PHP.

Vkladanie údajov pomocou jazyka SQL

Na vkladanie údajov do databázy používate SQL rovnakým spôsobom, akým používate SQL na vytváranie databáz a tabuliek. Syntax dotazu SQL je nasledovná:

INSERT INTO TableName (stĺpec1, stĺpec 2, ...) HODNOTY (hodnota1, hodnota 2, ...)

Ako vidíte, môžete aktualizovať viac stĺpcov v jednom príkaze SQL tak, že ich zadáte v zozname oddelenom čiarkami. Ale samozrejme môžete zadať iba jeden stĺpec a jednu hodnotu. Stĺpce, ktoré nie sú uvedené v tomto príkaze SQL, zostanú prázdne.

Príklad: Vloženie novej osoby do tabuľky

V tomto prípade používame databázu z lekcie 18. Povedzme, že chceme vložiť osobu do databázy. To môže byť Gus hus s telefónnym číslom 99887766 a dátum narodenia 1964-04-20 .

Príkaz SQL môže vyzerať takto:

$ strSQL = "VLOŽIŤ DO ĽUDÍ (Meno, Priezvisko, Telefón, Dátum narodenia) HODNOTY (" Gus "," Husa "," 99887766 "," 1964-04-20 ")";

Ako vidíte, príkazy SQL môžu byť poriadne dlhé a ľahko sa stratíte. Preto je lepšie napísať príkaz SQL trochu inak:

strSQL = "VLOŽIŤ DO ĽUDÍ ("; strSQL = strSQL. "Krstné meno,"; strSQL = strSQL. "Priezvisko," strSQL = strSQL. "Telefón"; strSQL = strSQL. "narodenie)"; strSQL = strSQL. "HODNOTY ("; strSQL = strSQL. "" Gus ","; strSQL = strSQL. "" Hus ","; strSQL = strSQL. "" 99887766 ","; strSQL = strSQL. "" 1964-04-20 ")"; mysql_query ($ strSQL) alebo die (mysql_error ());

Tu je príkaz SQL vytvorený tak, že ho rozdelíte na malé časti a potom ich skombinujete do premennej $ strSQL.

V praxi nie je žiadny rozdiel v aplikácii jednej alebo druhej metódy, ale pri práci s veľkými stolmi je mimoriadne dôležité vedieť „sledovať“, preto zvoľte najvhodnejšiu metódu.

Skúsme vložiť Gus Goose do databázy nasledujúcim kódom:

Vkladanie údajov do databázy // Pripojte sa k databázovému serveru mysql_connect ("mysql.myhost.com", "užívateľ", "sezam") alebo die (mysql_error ());// Výber databázy mysql_select_db ("mydatabase") alebo die (mysql_error ()); // Zostavte príkaz SQL $ strSQL = "VLOŽIŤ DO ĽUDÍ ("; $ strSQL = $ strSQL. "Krstné meno,"; $ strSQL = $ strSQL. "Priezvisko,"; $ strSQL = $ strSQL. "Telefón"; $ strSQL = $ strSQL. "Dátum narodenia)"; $ strSQL = $ strSQL. "HODNOTY ("; $ strSQL = $ strSQL. "" Gus ","; $ strSQL = $ strSQL. "" Hus ","; $ strSQL = $ strSQL. "" 99887766 ","; $ strSQL = $ strSQL. "" 1964-04-20 ")"; // Príkaz SQL sa vykoná mysql_query ($ strSQL) alebo die (mysql_error ()); // Ukončite spojenie mysql_close (); ?>

Databáza bola aktualizovaná!

Ukladanie vstupu používateľa do databázy

Pravdepodobne ste si už uvedomili, že na to môžete vytvoriť formulár, ako v lekcii 11, a hodnoty z formulára je možné vložiť do príkazu SQL. Povedzme, že máte jednoduchý formulár:

Tento formulár sa odošle do súboru insert.php kde, ako je uvedené v lekcii 11, môžete získať vstup od používateľa vyžiadaním obsahu formulára. V tomto konkrétnom prípade môže príkaz SQL vyzerať takto:

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

Podobne môžete požadovať údaje pre súbory cookie, relácie, reťazce dotazov atď.

Najčastejšie chyby začiatočníkov

Pri pokuse o aktualizáciu databázy budete pravdepodobne najskôr dostávať veľa chybových hlásení. Pri práci s databázou nie sú úplne povolené žiadne chyby. Nesprávne umiestnená čiarka môže znamenať, že databáza sa neaktualizuje a zobrazí sa chybové hlásenie. Nasleduje popis najčastejších chýb.

Neplatný typ údajov

Je dôležité, aby sa údaje a typ údajov stĺpca zhodovali. Každý stĺpec môže obsahovať údaje určitého typu. Nasledujúca snímka obrazovky ukazuje dátové typy tabuľky „ľudia“ z nášho príkladu.

Chyba sa hodí, ak sa napríklad pokúsite vložiť do dátového poľa text alebo číslo. Nastavte preto typ údajov čo najpresnejšie.

Najbežnejšie typy údajov sú uvedené nižšie:

Význam Dátový typ Veľkosť
CHR
Text alebo kombinácia textu a čísel. Môže sa použiť aj na čísla, ktoré sa nepoužívajú pri výpočtoch (napr. Telefónne čísla). Až 255 znakov - buď dĺžka uvedená v časti „Dĺžka“
TEXT
Veľké bloky textu alebo kombinácia textu a čísel. Až 65 535 znakov
INT
Číselné údaje pre matematické výpočty. 4 bajty
DÁTUM
Dátumy vo formáte RRRR-MM-DD 3 bajty
ČAS
Čas vo formáte hh: mm: ss 3 bajty
DÁTUM ČAS
Dátum a čas vo formáte RRRR-MM-DD hh: mm: ss 8 bajtov

Príkazy SQL s úvodzovkami alebo spätnými lomkami

Ak sa pokúsite vložiť text obsahujúci jednoduché úvodzovky ("), dvojité úvodzovky (") alebo spätné lomítko (\), záznam nebude vložený do databázy. Riešením je nahradiť spätné lomky pred znakmi, ktoré by sa mali pri vložení do databázových dotazov mnemotechnicky spracovať.