Vaizdo įtraukimas į MySQL duomenų bazę per PHP. Kaip rašyti į MySQL duomenų bazę, nukopijuojant PHP kodą Pridedant prie mysql per php

Paskutinį kartą atnaujinta: 2015-11-01

Norint juos pridėti vietoje, naudojamas "INSERT" viraz:

$query ="INSERT INTO VALUES(NULL, "Samsung Galaxy III","Samsumg")";

Viraz "INSERT" įterpia vieną eilutę iki lentelės. Po raktinio žodžio INTO nurodomas lentelės pavadinimas, o po raktinio žodžio VALUES – visų stulpelių reikšmės lankuose. Kadangi lentelėje turime tris stulpelius, galime parodyti tris reikšmes.

Taigi, kaip ir paskutinėse temose, lankstydami lenteles buvo nurodytas kitas stulpelių skaičius: id, pavadinimas, įmonė, tada šiuo atveju stulpeliui id perduodama NULL reikšmė, pavadinimui „Samsung Galaxy III“, ir „Samsumg“ įmonei.

Jei ID stulpelis nustatytas kaip AUTO_INCREMENT, mums nereikia nurodyti naujos skaitinės naujos eilutės reikšmės ir galime perduoti NULL reikšmę, o MySQL gali pateikti kitą turimą reikšmę.

Dabar pažiūrėkime į duomenų pridėjimą iš užpakalio. Sukurkime failą sukurti.php su susibūrimu:

Duomenys pridėti"; ) // uždaromas ryšys mysqli_close($link); ) ?>

Pridėkite naują modelį

Įveskite modelį:

Virobnikas:

Čia kodas yra susietas su sąsajų su formų funkcionalumu duomenų baze: papildomoms formoms įvedami duomenys papildyti duomenų bazę.

MySQL sauga

Čia mes susukome funkciją mysqli_real_escape_string(). Jis bus naudojamas kaip simbolių ekranas iš eilės, kuris tada laimi prasidėjus SQL. Kaip parametrai priims ryšio objektą tą eilutę, kurią reikia patikrinti.

Tokiu būdu mes nustosime vengti dviejų simbolių: pirmiausia sql-virus už mysqli_real_escape_string() pagalbinės funkcijos, o tada html už htmlentities() pagalbinės funkcijos. Tse leidžia apsiginti nuo dviejų tipų atakų: XSS atakų ir SQL injekcijos.

Su savo pagalbininku susipažinsite su juo, kaip pradėti kaupti duomenų bazę iš savo PHP scenarijus. Tu matai įrašo įtraukimas į MySQL lentelę, vikoristas php kodas. Visų pirma, pasidomėkite kitais mūsų pagalbininkais, kaip atverti pagrindinius darbo su PHP ir duomenų bazėmis žingsnius – prisijungimą nuo PHP prie MySQL duomenų bazės (anglų k.).

Prieš burbuolę pakeiskite puolimo buvimą:

  • Prieiga prie prieglobos valdymo skydelio

Krok 1 – lentelės kūrimas

Nasampered, turime sukurti lentelę jūsų duomenims. Procedūra dar paprastesnė, yaku galite dirbti phpMyAdmin iš jūsų skydelio priegloboje. MySQL duomenų bazių kūrimo procesą jau aprašėme su ankstesniu asistentu, todėl šį momentą čia praleisime.

Prisijungę prie phpMyAdmin pusės pamatysite panašų paveikslėlį:

Sukurkime lentelę po pavadinimu Studentai mūsų duomenų bazei u266072517_vardas. Mygtuku galite sukurti naują lentelę Sukurti lentelę. Jei pridėsite naują pusę, galėsite įvesti visus reikiamus lentelės duomenis:

Paprasčiausias būdas sukurti lenteles, pašalinti daugiau informacijos apie lentelių/duomenų bazės struktūrą, galite pakoreguoti odos lauką, grįžkite į oficialią phpMyAdmin dokumentaciją (anglų kalba).

Pateiksime keletą paprastų laukų paaiškinimų, kad galėtume vikoristovuvat:

  • vardas- lauko pavadinimas. Bus rodomas jūsų lentelės viršuje.
  • tipo– čia galite nustatyti lauko tipą. Pavyzdžiui, mes pasirenkame varchar, tam čia reikia įvesti eilę vardų (turintiems є raides, o ne skaičius).
  • Ilgis/Vertės- laimėti už didžiausios šios srities rekordo trukmės paskyrimą.
  • Indeksas– savo laukui „ID“ pasirinkome indeksą „Pagrindinis“. Lankstant stalus rekomenduojamas vienas ID laukas mamai. Laimėjo vikoristovuєtsya už іndexatsії zapisії lentelėse, jei vzaimosv'yazku susipynę lenteles. Čia taip pat galite pamatyti "A_I" ką tai reiškia Automatinis padidėjimas. Šis nustatymas automatiškai padidins indeksą (1,2,3,4…).

Paspauskite Sutaupyti ir jūsų stalas bus sukurtas.

Krok 2 – PHP kodo sukūrimas ir įrašo įtraukimas į MySQL lentelę

1 variantas – MySQLi metodas

Nasampered, būtina įdiegti duomenų bazę su duomenų baze, sgіdno su mūsų pirmuoju pagalbininku. Jei galime tęsti nuo SQL su prašymu įtraukti įrašą į MySQL lentelę - ĮDĖTI. Štai naujausias kodo pavyzdys su prisijungimo ir įterpimo metodu:

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

Šiame reitinge pirmoji kodo dalis (eilutės 3 – 18 ) galima pamatyti iki nuorodos į duomenų bazę įdiegimo dalies. Daugiau šios dalies nepereisime, jei norite sužinoti, ką reiškia odinė eilė, pasukite į mūsų priekinę ker_vnitstva, kaip jungiantis prie danų bazės (anglų k.).

Pradėkime 19 :

$sql = "INSERT INTO Students (vardas, pavardė, el. pašto adresas) VERTES ("Thom", "Vial", " [apsaugotas el. paštas]")";

Svarbiausia kodo eilutė, nereikia plėšti ūsų, ką aprašome mūsų žinyne – įrašo įtraukimas į MySQL lentelę į duomenų bazę. INSERT INTO– tse viraz, kuris prideda įrašą į nurodytą MySQL duomenų bazės lentelę. Savo programoje duomenis pridedame prie lentelės Studentai.

Skubėdami toli, prie rankų, žymime lentelių laukus, kurių reikšmes papildysime: (vardas, pavardė, el.. Duomenys bus įtraukti į dainavimo tvarką. Kaip mes rašome (el. paštas, pavardė, vardas) Vertės bus pridėtos kita tvarka.

Ženkite vertę VERTYBĖS. Čia mes nustatome savo reikšmes prieš nurodytą lauką. Šiame range odos laukas suvokia savo reikšmę. Pavyzdžiui, mūsų vipadka akimirką turės akį: vardas = Tomas, pavardė = buteliukas, el. paštas = [apsaugotas el. paštas] .

Ką svarbu pasakyti, kokia čia mano forma? užklausė SQL, koreguoja PHP kodą. SQL zapit vinni buti ukladenі in paws. Mūsų atveju prašoma visų tarp letenų ir tų, kurie eina po $sql = tse SQL.

Kita kodo dalis ( 20 – 22 eilutes) pateikdami užklausą ir pakartotinai patikrindami, ar apklausa buvo sėkminga:

If (mysqli_query($conn, $sql)) ( pakartokite "Naujas įrašas sėkmingai sukurtas"; )

Jūs būsite informuoti apie sėkmę, kad paleidimai būtų tinkamai maitinami.

aš likusi dalis ( 22 – 24 eilutės), kad būtų parodytas dar vienas priminimas apie netyčinę mūsų užklausos viziją:

Else ( aidas "Klaida: " . $sql . "
" .mysqli_error($conn); )

Šis kodas mums rodo priminimą apie atleidimą, tarsi kažkas nutiko.

2 parinktis – PHP duomenų objekto metodas (P HP duomenų O objektas)

Kaip ir priekiniame užpakaliuke, reikia prisijungti prie duomenų bazės prieš vikontą, kaip ir kuriant naują SKVN objektą – priekinė ceremonija pasakoja apie tai, kaip turi būti. Nuorodos į MySQL duomenų bazę yra SKVN objektas, mes esame atsakingi už skirtingų SKVN 'metodų' (jų pačių funkcijų, kaip dainos objekto dalis) parinkimą, kad būtų galima paruošti ir paleisti užklausą. Objektų metodai iškviečiami tokia tvarka:

$the_Object->the_Method();

SKVN leidžia paruošti SQL kodą prieš redaguojant. SQL užklausa apskaičiuojama ir pataisoma prieš pradedant. Taigi, paprastą SQL injekcijos ataką galima atlikti įkeliant SQL kodą formos lauke. Pavyzdžiui:

// Vartotojas tai įrašo prisijungimo formos vartotojo vardo lauke thom"; DROP DATABASE user_table; // Galutinė užklausa tampa tokia "SELECT * FROM user_table WHERE vartotojo vardas = thom"; DROP DATABASE user_table;

Skіlki SQL kodas yra sintaksiškai teisingas, taškas su kuo apiplėšti DUOMENŲ BAZĖS vartotojo_lentelė nauja SQL užklausa, o jūsų įrašų lentelė buvo ištrinta. Besiruošiantys Virazi simbolių neįsileidžia і ; užpildyti prašymą išeiti, tą nurodymą DROP DUOMENŲ BAZĖ niekas nelaimi.

Zavždi Užkariaukite tai, ką ruošiate, tvarkydami arba paėmę duomenis iš duomenų bazės iš SKVN.

Pergalingai kalbai, kuri ruošiasi, būtina sukurti naują pokytį, pavyzdžiui, geresnį metodą pasiruošti () duomenų bazės objektas.

Teisingai atrodantis kodas atrodo taip:

$servername = "mysql.hostinger.com"; $duomenų bazė = "u266072517_pavadinimas"; $vartotojo vardas = "u266072517_user"; $slaptažodis = "buystuffpwd"; $sql = "mysql:host=$servername;dbname=$duomenų bazė;"; $dsn_Options = ; // Sukurkite naują ryšį su MySQL duomenų baze naudodami SKVN, $my_Db_Connection yra objekto bandymas ( $my_Db_Connection = new PDO($sql, $username, $password, $dsn_Options); aidas "Prisijungta sėkmingai"; ) gaudyti (PDOException $ error) ( echo "Ryšio klaida: " . $error->getMessage(); ) // Nustatykite parametrus, kad asmuo atitiktų jūsų reikšmę $first_Name = "Thom"; $last_Name = "Buteliukas"; $email = " [apsaugotas el. paštas]"; // Čia sukūrėme parinktį, kad duomenų bazės objekto antraštės () metodas // SQL SQL, kurį pasirinkote apsaugoti kaip parametrą, o rezervuotos vietos - kaip tikslą: vietos rezervavimo_pavadinimas $my_Insert_Statement = $my_Db_Connection-> ready( "INSERT INTO Studentai (vardas, pavardė, el. pašto adresas) VALUES (:first_name, :last_name, :email)"); // Dabar mes nurodome scenarijui, į kurį kintamąjį iš tikrųjų nurodo kiekvienas rezervuotas rezervas, naudodami metodą bindParam() // Pirmasis parametras yra vietos rezervavimo ženklas aukščiau esančiame sakinyje – antrasis parametras yra kintamasis, kuris turėtų reikšti $my_Insert_Statement->bindParam(:first_name, $first_Name); $my_Insert_Statement->bindParam(:last_name, $last_name bindParam(:el.paštas, $el.paštas); / / Vykdykite užklausą naudodami ką tik apibrėžtus duomenis // Metodas execute() grąžina TRUE, jei jis sėkmingas, ir FALSE, jei ne, todėl galite čia rašyti savo pranešimus, jei ( $my_Insert_Statement->execute()) ( echo " Naujas įrašas sėkmingai sukurtas"; ) el se (echo "Neįmanoma sukurti įrašo"; ) // Atlikę šį veiksmą, galite jie pakeičia parametrų reikšmes ir vykdomi iki duomenų bazės $first_Name = "Jonas"; $last_Name = "Smitas"; $email = " [apsaugotas el. paštas]$mano_įterpti_sakinys->vykdyti(); // Vykdykite dar kartą, kai pasikeitė kintamieji if ($my_Insert_Statement->execute()) ( echo "Naujas įrašas sėkmingai sukurtas"; ) else ( echo "Neįmanoma sukurti įrašo"; )

28, 29 ir 30 mi eilėse vikoristovuemo metodas bindParam() duomenų bazės objektas. Є toks savarankiškas metodas bindValue(), vіdrіznyaєtsya priekyje.

  • bindParam() – kuris metodas naudojamas duomenims rinkti, jei metodas vykdyti () pasiekė. Pirmą kartą scenarijus pasiekia metodą vykdyti () vin bachit, scho $first_Name paprašykite „Thom“, jis parodys tos piktogramos vertę. Jei scenarijus staiga patenka į metodą vykdyti (), laimėk stebėtis kuo $first_Name dabar paprašykite „Jonas“, parodykite tą pačią reikšmę ir vėl pradėkite klausti su naujomis reikšmėmis. Svarbu suprasti, ką darome, kad paklaustume vieną kartą ir pateiktume skirtingus duomenis skirtingose ​​scenarijaus vietose.
  • bindValue() –Šiuo metodu apskaičiuojami duomenys, nesunku pasiekti eilutės apačią. Oskіlki prasmė $first_Name Bulo buvo nustatytas kaip "Thom", šiuo metu, jei mes pasiekėme metodą bindValue(), tai bus vikoristano su vikliku metodu vykdyti () dėl $mano_įterpti_pareiškimas.

Grąžinkite pagarbą, kurią vėl pergalingai keičiame $first_Name ir staiga nustatykite naują vertę. Jei patikrinsite savo duomenų bazę paleidę šį scenarijų, bus įžeidinėjami vardai, priešingai nei pakeitimo vertė $first_Name bus vienas „Jonas“, pavyzdžiui, scenarijus. Atminkite, kad PHP įvertina scenarijaus erdvę prieš jį paleisdama.

Kaip pakeisti scenarijų pakeičiant bindParam ant bindValue, pridėsite „Thom Vial“ dvіchі į MySQL duomenų bazę ir John Smith bus ignoruojamas.

Krok 3

Kai tik bus užklausta, kurią sėkmingai paleidome MySQL duomenų bazėje, norime priminti:

Atleidimo išplėtimo vizija

MySQLi

Kitu atveju, pakeitus priminimą, kuris buvo iškeltas, bus rodomas priminimas apie malonę. Pvz., Leiskime vieną sintaksinį atleidimą mūsų kode ir paimkime tai:

Kaip ir Bachimo, pirmoji kodo dalis yra saugi, ryšys buvo sėkmingai įdiegtas, tačiau SQL buvo įkeltas valandą, nes nepavyko.

"Klaida: INSERT INTO Studentai (vardas, pavardė, el. pašto adresas) VALUES ("Thom", "Vial", " [apsaugotas el. paštas]") Galite patikrinti savo SQL sintaksę; patikrinkite vadovą, kuris atitinka jūsų MySQL serverio versiją, ar tinkama sintaksė, norint naudoti šalia „(vardas, pavardė, el. pašto adresas) VERTYBĖS ("Thom", "Vial", " [apsaugotas el. paštas]")" 1 eilutėje"

Leidžiama sintaksiškai atleisti, tarsi sukelti nesėkmę mūsų scenarijaus pabaigoje. Atsiprašau čia:

$sql = "INSERT INTO Students (vardas, pavardė, el. pašto adresas) VERTES ("Thom", "Vial", " [apsaugotas el. paštas]")";

Kaip tu bachite, mi vikoristovuєmo figūrines arkas vietoj apvalių. Tai nėra būdas sintaksiniam atleidimui mūsų scenarijuje.

SKVN

7 eilutėje SKVN jungties atleidimo apdorojimo režimas nustatytas į „rodyti visas išimtis“ (rodyti visas išimtis). Jei sutvarkysite scenarijų ir paprašysite nesėkmės, neatimsite jokio priminimo apie atleidimą. Jei bus daugiau teismų, atsiras specifinių problemų. Iš esmės lengviau laimėti, jei išplečiate scenarijų, todėl toje lentelėje galite parodyti duomenų bazių pavadinimus, jei norite sužinoti, ar kas nors galėtų neteisėtai pasiekti jūsų duomenis. Jei viršugalvyje nugalėjo garbanotos arkos, o ne apvalios, atleidimas atrodo taip, kaip parodyta žemiau:

Neteisinga klaida: Išimtis "PDOException" su pranešimu "SQLSTATE: Sintaksės klaida arba prieigos pažeidimas: 1064 Negalite sugadinti SQL sintaksės; patikrinkite vadove, kuris atitinka jūsų mySQL serverio versiją, ar tinkama sintaksė naudojama šalia „(vardas, pavardė, el. pašto adresas) VALUES ("Thom", "Vial", " [apsaugotas el. paštas]")" 1 eilutėje"

Kitos problemos, su kuriomis galite susidurti:

  • Neteisingai nurodyti laukai (netinkami laukai ir užrašyta pavadinimų).
  • Lauko tipo vertės tipo nežinojimas. Pavyzdžiui, jei norime skaičiui priskirti reikšmę 47 lauke vardas, atsiprašome, tam, kas perkeliama, kas bus iš eilės. Ale, jei, pavyzdžiui, įvedate skaičių letenose, “47” , nebus atleista, kad mūsų numeris bus užrašytas iš eilės kiekviename laukelyje.
  • Pabandykite įvesti duomenis į lentelę, o tai neįmanoma, bet atsiprašau rašytiniame lentelės pavadinime.

Visi atleidimai gali būti pataisyti dėl malonės arba malonės gali būti peržiūrimi peržiūrint malonės žurnalą (anglų kalba).

Sėkmingai užpildę duomenis, esame skolingi savo duomenų bazei. Lentelės užpakalio ašis, yaku mes įtraukėme savo duomenis, tarsi stebėdamiesi phpMyAdmin.

Visnovok

Tuo tsomu bendrininkas tu vyvchili, kaip nugalėtojas PHP kodas įrašui pridėti prie MySQL lentelės nuo pergalių MySQLiі SKVN. Taigi jie pažvelgė į platų tos vyšnios atleidimą. Žinojimas, kaip nulaužti PHP kodą ir įtraukti jį į MySQL duomenų bazę, bus gera idėja, jei išmoksite programuoti arba sukurti savo svetainę.

Šiame lygyje mes galime įvesti duomenis į MySql duomenų bazę, duomenis įvesti tvarkinga forma. Jūs žinote, kaip pasiekti MySql duomenų bazę iš tinklalapio kodo, taip pat kaip apdoroti ir įvesti duomenis į duomenų bazę.


Paskutinėje pamokoje pasakojau, kaip kompiuteryje įdiegti Denverį, kaip susikurti savo duomenų bazę, jai kopijuoti, kaip sukurti lentelę duomenų bazėje, ir mes ją užpildėme viename įraše.

Šiuo metu sukuriame html dokumentą koristuvacha informacijai įvesti, taip pat šios informacijos php failų rinktuvą, tai yra duomenys, kuriuos reikia apdoroti, susieti su MySql duomenų baze ir įterpti ten naujus įrašus. .

Pereidami iš slіv į slіv, darykime tai teisingai.

Mes įtraukiame koristuvach duomenis į MySql duomenų bazę iš interneto pusės

Pirmas žingsnis: sukurkite html formą duomenų įvedimui

Nuo pat pradžių turime pasiruošti darbui su php, MySql ir prieš bandydami parašytą kodą vietiniame kompiuteryje. Kam:

1. Kompiuteryje paleiskite Denwer.

2. Peržiūrėkite Denverio sukurtą virtualų diską (pavyzdžiui, galiu naudoti „Z“ diską). Įveskite: home - localhost - www - sukurkite ten naują aplanką ir suteikite jam pavadinimą (pavadinsiu jį "db1").

3. Jei dirbate „Adobe Dreamweaver“, eikite į svetainės tvarkyklę, ten spustelėkite mygtuką „Naujas“, kad pasirinktumėte kelią į gerai sukurtą aplanką, lauke galite suteikti svetainės pavadinimą, tada spustelėkite Išsaugoti – Atlikta. Tada jūsų aplankas bus rodomas dešiniajame „Adobe Dreamweaver“ skydelyje.

1. Dabar sukurkime puikų html failą (pavadinkime jį info_form.html ir išsaugokime patys, kad sukurtume db1 aplanką) ir įrašykite ten formos kodą informacijai įvesti. Mūsų vartotojų lentelėje new_db duomenų bazėje yra keletas laukų, kuriuos galima įkelti automatiškai (ID laukas bus įkeltas automatiškai). Vihodyachi zgogo, galite sukurti įžeidžiančios išvaizdos kodą:

Nepavadintas dokumentas










Čia yra mūsų receptų failo formos veiksmo parametras form.php. Vin bus pavyzdinis failas, kurį mes sukūrėme.

Sukurkime style.css failą, kad sukurtume savo formos stilių. Vіne vzhe podklyucheniya y kodі, todėl scho sho liko tik sukurti yogo, įdėti į tą patį aplanką, scho ir html failą ir įrašyti naują įžeidžiantį kodą:

Turinys (plotis: 400 tšk.; paraštė: 0 automatinis; fonas: #F8F4B6;) etiketė (ekranas: blokas; slankioji: kairė; plotis: 150 tšk.; užpildymas: 0 10 piks.; paraštė: 18 piks. 0 0; teksto lygiavimas: dešinėn;) # pateikti(slankioji:dešinėn; paraštė:5px 50px 10px 0;)

Dabar forma atrodo taip:

Tačiau jei įvesite duomenis ir bandysite pateikti formą, jums bus atleista, kad neturite failo form.php, kuris yra scenarijų kataloge.

Sukurkite failą-obrobnik - tai mūsų užduotis.

2. Eikime į aplanko vidurį db1 sukurkime aplanką su pavadinimu "scenarijai". Mes išsaugome visus savo scenarijus kartu su MySql duomenų baze.

Sukūrę aplanką sukurkite naują php failą ir išsaugokite jį aplanko scenarijuose pavadinimais form.php.

Tačiau prieš tai būtina užsiimti informacijos rinktuvu, būtina prisijungti prie mūsų duomenų bazės. Aš sukursiu šiam okremy failui ir ašiai, kodėl:

Daugiau nei bet kas, savo projektui turėsite prisijungti prie MySql duomenų bazės ne tik iš vieno failo. Paprastai skirtingi projekto failai keičiami su duomenų baze.
Dar nepraktiška tokiame odos faile nurodyti tą patį kodą prisijungimui prie pagrindo. O jei yra 50 tokių failų, pavyzdžiui, bus 50 ir vieną gražią dieną pakeisite koristuvach slaptažodį ir galėsite rasti visus 50 failų ir pagerinti savo odos darbą.
Patogiau nulaužti norint prisijungti prie okrem failo, kuris bus prijungtas prie odos failo, de gali būti prijungtas prie MySql duomenų bazės. Šiuo metu taisyti reikia tik viename faile.

Otzhe, sukurkime naują php failą, pavadinkime jį joga prisijungti.php kuris dedamas į scenarijų aplanką. Naujajame parašysime kodą, skirtą įvesti mūsų MySql duomenų bazę, taip pat kodą, kuris primins apie atleidimą įvairioms viniknennyoms. Atsižvelkite į tai, kad kaip parametrus turėsite užregistruoti savo korespondento vardą, slaptažodį ir duomenų bazės pavadinimą. Jakų šeimininkas kaltas buti mіstseviy šeimininko.

Atleiskite, prijungtas prie duoklės pagrindo! ".mysql_error()".

"); mysql_select_db("new_db")//parametras prie pančių ("Im'basi, kodėl tu nori") arba die("

Atsiprašau už bazi danih pasirinkimą! ". mysql_error() ."

"); ?>

Dabar pereikime prie form.php failo ir perjunkite į naują connect.php failą, kad gautumėte papildomo įžeidžiančio kodo:

Kai tik bandysite pateikti formą, tuomet dirbsite ištaisę tuščią tinklalapį. Viskas gerai, nes ką tik grįžome į bazę ir kol kas nieko nesimato.

Be to, jūs buvote informuotas apie atleidimą, pakeiskite visų parametrų teisingumą (pavardė, slaptažodis, pagrindinio kompiuterio pavadinimas: localhos, duomenų bazės pavadinimas), taip pat įsitikinkite, kad jūsų Denverio intarpai.

3. Mes nuėjome toli nuo MySql duomenų bazės, o dabar mums reikia priimti mūsų pavyzdinės bylos duomenų formoje įvestus duomenis. Galime padėti su „pavadinimo“ atributais, kurie yra vienodi html dokumentams.

Duomenų apdorojimui paspartinsime specialų php pakeitimą, kuris suteiks mums visą informaciją iš internetinės formos. Šis pakeitimas vadinamas „$_REQUEST“.

Prisijungę prie failo connect.php į form.php failą pridėkite šį kodą:

$pirmas_vardas = $_REQUEST["vardas"]; $pavardė = $_REQUEST["pavardė"]; $el. paštas = $_REQUEST["el. paštas"]; $facebook = $_REQUEST["facebook"];

4. Paėmėme duomenis iš failo ir įrašėme į pakeitimus. Dabar tai būtina Įkelkite duomenis į mūsų MySql duomenų bazės lentelę. Kuriam žemiau būtina parašyti šį kodą:

$insert_sql = "INSERT INTO vartotojai (vardas, pavardė, el. paštas, facebook)" . "VALUES("($pirmas_vardas)", "($pavardė)", "($el. paštas)", "($facebook)");"; mysql_query($insert_sql);

Čia mes paprašysime jūsų atgal, sakydami, kad turime įterpti papildomų „vartotojų“ lentelės lauko pakeitimų. Pateikiame užklausą iš $insert_sql pakeitimo. Ir tada mes galime paprašyti specialios funkcijos mysql_query pagalbos.

Jei tą teisingą formą užpildysite iš karto, o tada pažiūrėsite į lentelę „vartotojai“ savo duomenų bazėje, pradėsite naują įrašą, kuris ten atsiras po priežiūros.

5. Mes įdėjome naują įrašą iš tinklalapio į MySql duomenų bazės lentelę. Dabar noriu šiek tiek paliesti formatą, kuriame įterpiami mūsų duomenys.

Visų pirma, reikia kalbėti apie tą situaciją, jei asmuo, zapovnyuyuchi forma, gali įdėti netinkamų spragų informacijos įvedimo burbule. Reikia apkarpyti.

Kitaip mes turime „Facebook“ lauką. Jei toliau norime įvesti informaciją taip, kaip prašoma, būtina įsitikinti, kad duomenys šiame lauke yra surinkti teisingu formatu (tai yra „http://www.facebook.com/identifier on facebook“). Ale koristuvach ne zavzhda įveskite Qi duomenis taip, kaip mums reikia. VIN galima įvesti: „www.facebook.com/facebook id“, „facebook.com/facebook id“ arba tiesiog „/facebook id“.

Šios situacijos yra unikalios. Kam podkoriguёmo mūsų kodas. Galime iškirpti tarpus papildomoms funkcijoms apkarpyti, ir patikrinkite įvesto URL teisingumą „Facebook“ bus funkcija preg_match. Šiame reitinge visas kodas form.php faile atrodys kaip kitas rangas:

Nepavadintas dokumentas Naujas įrašas įterptas į bazę!

"; ?>

Apie funkciją preg_match:
Visa funkcija yra pokštas su reguliariais svyravimais.

Pirmasis arkų parametras yra įprasta virazė, kitas yra eilutė, kaip reikia.

Funkcija pasuka tik pirmąjį zbіg: 0 - jei nėra zbіgіv, 1 - jei yra zbіg є.

Pabandykite dabar teisingai užpildyti formą, užpildydami bet kurį laukelį netinkamą vietą ir įvesdami facebook adresą be http:// arba naudodami tik facebook identifikatorių. Paklauskite užklausos, tada eikite į duomenų bazę ir pasakysite, kad nepaisant neteisingo teisingo užpildymo, duomenys gali būti tokie, kokių mums reikia.

Ant kurio aš baigsiu pamoką. Visus šios pamokos failus galite pakeisti savo įrašuose (tik nepamirškite pataisyti connect.php failų parametrų).

O ateinančiais metais mokomės fiksuoti informaciją iš MySql duomenų bazės, pasirinkti įrašymo poreikį ir rodyti ekrane. Kad nepraleistumėte būsimos pamokos, užsiprenumeruokite tinklaraščio naujinį, kad gautumėte papildomų prenumeratos formų, kaip matote toliau.

Palikite savo komentarus ir pasidalykite su draugais, kad gautumėte papildomų socialinės žiniasklaidos mygtukų.

Sėkmės ir iki aušros ateinančią valandą!

Noriu papasakoti apie šį įrašą, Kaip pateikti Bazi Danikh, įveskite duomenis formoje. Taigi sukuriame paprastą formą, kurioje turėsime du laukus:

Tavo vardas:
Tavo elektroninis paštas:


Šia forma galima registruoti naują korespondentą, siųsti naujienas, rinkti statistiką ir visada gerai žinoti... Naudodami šią formą užpildykite savo duomenis: išsiųskite tą žinutę, paspauskite mygtuką ir siųskite duomenis į php scenarijų:

$vardas = $_POST["vardas"]; $el. paštas = $_POST["el. paštas"]; $result = mysqli_query("INSERT INTO vartotojo (vardas, el. pašto adresas) VALUES ("$vardas", "$el. paštas")"); if ($rezultas) ( echo "Sėkmingas taupymas!"; ) else ( aidas "Man atleista, būk malonus, bandykite dar kartą."; )


Ką daro scenarijai? Išsiaiškinkime!
Įveskite duomenų formą, naudokite POST metodą, kad pereitumėte prie php scenarijaus (kuris yra daugiau rašybos), o globalaus $_POST masyvo pagalbai duomenys formuojami pakeitus $vardas ir $el. paštas:

$vardas = $_POST["vardas"]; $el. paštas = $_POST["el. paštas"];


Po to, kai pakeitimas yra paruoštas įnešti į bazę, pridedame užklausą. Ir visų pirma žemiau Jūsų skriptai yra terminuoti, bet jau prijungti prie duomenų bazės, kaip prisijungti prie duomenų bazės, rašiau šioje temoje: . Jis paprašė savęs atrodyti taip:

$result = mysqli_query("INSERT INTO vartotojo (vardas, el. pašto adresas) VALUES ("$vardas", "$el. paštas")");


Šiam kodui buvo nurodyta, kad prieš antrąjį vardą ir el. pašto adresą, kaip ir naudotojo lentelėje, bus įtraukti šie pakeitimai: $vardas ir $el. paštas .
Kadangi viskas pavyko gerai, primename:

Duomenys sėkmingai išsaugoti!


Na, o iš tikrųjų dėl problemų ir neįvestų duomenų turime priminti apie atleidimą:

Atsiprašėte, būk malonus, pakartokite testą.


Nuo aš visų!

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

Galite pridėti daugiau informacijos įvedimo laukų, pavyzdžiui, turime pridėti lauką koristuvach vietos įvedimui. Jau turime paruoštą scenarijų (daugiau rašymo), dabar tiesiog pridėkite lauką Tavo vieta, pakeiskite pavadinimą į $city . І taigi duomenų įvedimo forma po:

Tavo elektroninis paštas:


papildyti:

Jūsų vieta:


php scenarijuje po:

$el. paštas = $_POST["el. paštas"];


papildyti:

$miestas = $_POST["miestas"];


Na, ir, žinoma, pagal pageidavimą pridėkite tą patį, ašis yra tokia:

$result = mysqli_query("INSERT INTO vartotojo (vardas, el. pašto adresas, miestas) VALUES ("$vardas", "$el. paštas", "$miestas")");


Ašis to, ką galima pamatyti rezultate:
Įėjimo forma:

Tavo vardas:
Tavo elektroninis paštas:
Jūsų vieta:


Scenarijus:

$vardas = $_POST["vardas"]; $el. paštas = $_POST["el. paštas"]; $miestas = $_POST["miestas"]; $result = mysqli_query("INSERT INTO vartotojo (vardas, el. pašto adresas, miestas) VALUES ("$vardas", "$el. paštas", "$miestas")"); if ($result == true) ( ​​echo "Sėkmingai išsaugota!"; ) else ( echo "Atleisk, būk malonus, bandykite dar kartą."; )


Kaip bachitas nieko sulankstoma! Jei reikia, galite pridėti daugiau laukų, daugiau, daugiau...

Komentarai perkelti iš tinklaraščio

SERGII
2016-09-14 01:25 val
Gera diena!
Sakyti tą patį maistą: kaip lengviausia tvarkyti duomenų taupymą ir taisyti programas nenaudojant duomenų bazės? Nebūtų pageidautina būti prijungtam prie MySQL ar Access.

ADMIN
2016-09-14 22:14 val
Gera diena!

Savybės. Nustatymai
App.Config
XML failą
serializavimas
Pabandykite pasirinkti vieną iš sąrašo.

MYKOLA
2016-09-16 02:28 val
Sveiki, kaip pamatyti dataGridVIew eilutę iš dataGridVIew ir phpMyAdmin.

PhpMyAdmin? Visas roboto apvalkalas su duomenų baze, ar galite paaiškinti?

MYKOLA
2016-09-18 02:24 val
Būtina matyti eilutę, matomą iš DataGridView ir duomenų bazės.

ADMIN
2016-09-19 07:00 val
Kaip pamatyti eilutę Mysql duomenų bazėje – pridedant straipsnį.

MYKOLA
2016-09-20 09:20 val
Puikus dyakuyu.

DIMA
2016-09-20 10:24 val
Sveiki, ar galima šį metodą įgyvendinti ne per DataGridView, o per ComboBox? Yakscho taip, tada jakas? Ačiū.

ADMIN
2016-09-22 03:21 val
Vitanija. Užpakalis:

GENADIJA
2016-09-22 18:25 val
kodėl turėčiau pridėti šį tekstą į duomenų bazę System.Windows.Forms.TextBox, Text:

Straipsnio ašis tse (ge) iki tse pabaigos parašyta gene hoch koreguotų indikacijų lentelių tekste. geno žodis kaltas Bulo bus pažemintas toli

ADMIN
2016-09-24 04:17 val
Shvidshe už visas neteisingas SQL rašybas klausia, pavyzdžiui:

Teksto laukelyje1 įveskite pavadinimą: Gene.

SQL užklausa: "Įterpti į lentelės pavadinimą reikšmės(textBox1, ..)"; Rezultatas: System.Windows.Forms.TextBox

Ir jums reikia perduoti: "Įterpti į lentelės pavadinimą reikšmės(textBox1.Text, ..)";
Rezultatas: Gena

GENADIJA
2016-09-24 18:41 val
Tai taip išeina ir є. Ačiū

SERGII
2016-09-25 apie 11:51
Laba diena. O kaip įgyvendinti duomenų bazės papildymą per textBox?

ADMIN
2016-09-26 20:53 val
Iš principo viskas tas pats. Pavyzdžiui, paimkite likusį užpakalį, jo reikia naujam:

//parametrų kūrimas ir įtraukimas į rinkinį cmd.Parameters.AddWithValue("@Name", textBox1.Text); cmd.Parameters.AddWithValue("@Pavardė", textBox2.Text);

dabar parametrai: Vardas ir Pavardė priima teksto laukelyje įvestas reikšmes ir perduoda jas duomenų bazei

LINARU
2016-09-27 17:45 val
Sveiki, kaip matote dataGridVIew ir phpMyAdmin eilutę?

ADMIN
2016-09-29 02:06 val
Nežinau, kaip galima pamatyti phpMyAdmin eilutę. Pavyzdžiui, „dataGridView“ galite padėti „SelectionChanged“ poskyriui.

PSH
2016-09-30 03:48 val
2 Linara:
Jei norite labai redaguoti eilutes, naudokite įrankį a la HediSQL, pakoreguokite ir pakeiskite eilutes.

2 admin
Gera diena! Ačiū už medžiagas - viskas šauniai išdėstyta)
Maitinimas: pridedu duomenis su šia užklausa (bandomasis vynas):

String sql = "Įterpti į naudotojus ("FIO", "Kelionė", "skaičius", "kaina", "data", "pasas", "gimimas") VERTYBĖS ("Kolyan", "Maskva", "1+1" ", 1100, "2011-11-11", "1111 1111", "11/9/1900");";

Duomenys įvesti viskas ok, bet duomenų bazėje (mysql) rodomas kirilicos abėcėlės pavadinimas "????".

„Visual Studio“ sako, kad „System.String“ yra „Unicode“ seka.

Taigi pabandę:

ALTER DATABASE `testas` COLLATE "koi8r_general_ci"; ALTER TABLE `vartotojai` COLLATE="koi8r_general_ci"; PAKEISTI DUOMENŲ BAZĘ `testas` COLLATE "utf8_unicode_ci"; ALTER TABLE `vartotojai` COLLATE="utf8_unicode_ci";

Ale nepadeda.
Kas gali būti dešinėje? Skirtingas VS i DB kodavimas? Apie ką?
Ar galėtumėte atsiųsti ką nors paskaityti / pakeisti.
Ačiū

ADMIN
2016-10-01 09:49 val
Vitanija.

Duomenų bazėje (ir lentelėse) yra utf_general_ci sakinys

Taigi ar Hіba є išdėstymas? Gal utf8_general_ci?

Mysql duomenų bazės kūrimą pradėkite pasirinkę utf8_general_ci, tad su kirilicos abėcėle problemų nekils, nes akivaizdu, kad klientas neateina į serverį.

Suderinimui pasirenkamas COLLATION, bet lygiai taip pat svarbus ir kodavimas (charset). Štai kodėl būtina persvarstyti, ar jis teisingai paskelbtas serveryje, pavyzdžiui, utf8, o ne latin1.

Jungiantis per .net, jungtis (užrakinti) nustatoma į latin1, kitu atveju ryšio eilutėje reikia aiškiai nurodyti utf8 kodavimą:

MySqlConnection mycon; mycon = new MySqlConnection("serveris=127.0.0.1;uid=vasya;pwd=123;duomenų bazė=testas;Charset=utf8;"); // MySqlConnectionStringBuilder: mysqlCSB.CharacterSet = "utf8";

PSH
2016-10-01 11:34 val
Jūs darote žingsnį apibūdindami save, utf8_general_ci!
Tai labai padėjo; Charset=utf8;
Ačiū didingajai!

SERGII
2016-10-02 apie 11:02 val
Reikalingas Dyakuyu darbiniam užpakaliukui. Maistas
Sukūriau teksto lauką taip, kaip noriu įvesti duomenų bazės IP adresą, bet nežinau kaip čia pateikti duomenų ašį

String conStr = " [apsaugotas el. paštas];user=test;" +
"duomenų bazė=testas;slaptažodis=testas;";
Prašome pasiūlyti, kaip šioje struktūroje įterpti duomenis iš teksto laukų langų formoje.

ADMIN
2016-10-03 apie 11:50 val
"[apsaugotas el. paštas];vartotojas=...
Vietoj to, geriau pakeisti tokią pergalingų galių eilę, kaip šis straipsnis, bet metodas String.Format ()

OLGA2203
2017-05-15 20:14 val

String Connect = "Serveris = 127.0.0.1; Prievadas = 3306; Duomenų bazė = bazė; Duomenų šaltinis = vietinė priegloba; vartotojas = šaknis;"; MySqlConnection con = Naujas MySqlConnection(Connect); con.Open(); //Duomenų bazės duomenų diegimas. MySqlCommand cmd = Nauja MySqlCommand(); cmd.CommandText = @"ĮTERKITE Į (ID, Kategorija, Pavadinimas, Prekės ženklas, Kaina, Nuotrauka, Dydis, Spalva, Medžiaga, Skaičius) VERTES (@pr, @Kategorija, @Pavadinimas, @Prekės ženklas, @Kaina, @Photo, @ Dydis, @Spalva, @Medžiaga, @Count)“; cmd.Parameters.AddWithValue("@pr", skaitiklis); cmd.Parameters.AddWithValue("@Kategorija", comboBox1.SelectedItem.ToString()); cmd.Parameters.AddWithValue("@Vardas", textBox1.Text); cmd.Parameters.AddWithValue("@Prekės ženklas", textBox2.Text); cmd.Parameters.AddWithValue("@Kaina", Convert.ToInt32(textBox4.Text)); cmd.Parameters.AddWithValue("@Photo", textBox3.Text); cmd.Parameters.AddWithValue("@Dydis", textBox6.Text); cmd.Parameters.AddWithValue("@Spalva", textBox5.Text); cmd.Parameters.AddWithValue("@Material", textBox8.Text); cmd.Parameters.AddWithValue("@Count", Convert.ToInt32(textBox7.Text)); cmd.Connection=con; cmd.ExecuteNonQuery(); MessageBox.Show("Sėkmingai pridėta", "Sėkmingai pridėta", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

Matau atleidimą "Stulpelis 'ID' negali būti niekinis", išvalau ID stulpelio papildymą - rašau apie patį įžeidimą ir t.t.
Aš pridedu pastovią reikšmę į VERČIŲ šakas, prie pagrindo pridedama eilutė.
Pasakyk man, būk malonus, kokia problema? Pačioje duomenų bazėje reikia užrašyti duomenis, kurie įvedami per formą, tą reikšmę

Maršrutizatorius