Kirjoittaminen mysql:iin php:stä. Php pääsy mysql-tietokantaan. Käytännön esimerkkejä. Tietojen lisääminen SQL:llä

Tämä opas näyttää sinulle, kuinka voit aloittaa tietokannan hallinnan omasta PHP käsikirjoitus. Tulet opiskelemaan tietueen lisääminen MySQL-taulukkoon, käyttämällä PHP koodi. Ennen kuin aloitat, tutustu muihin opetusohjelmiimme, jotka kattavat PHP:n ja tietokantojen käytön perusvaiheet - yhteyden muodostamisen PHP:stä MySQL-tietokantaan.

Ennen kuin aloitat, tarkista seuraavat asiat:

  • Pääsy isännöinnin ohjauspaneeliin

Vaihe 1 - Luo taulukko

Ensinnäkin meidän on luotava taulukko tiedoillesi. Tämä on hyvin yksinkertainen toimenpide, jonka voit tehdä phpMyAdmin isännöinnin ohjauspaneelista. Olemme jo käsitelleet MySQL-tietokannan luomisprosessin edellisessä opetusohjelmassa, joten ohitamme sen osan tässä.

Kun olet kirjautunut phpMyAdmin-sivulle, näet seuraavanlaisen kuvan:

Luodaan taulukko nimellä Opiskelijat tietokantaamme varten u266072517_nimi. Voit luoda uuden taulukon painikkeella Luo taulukko. Tämän jälkeen näet uuden sivun, jolle voit syöttää kaikki tarvittavat tiedot taulukkoasi varten:

Tämä on yksinkertaisin tapa luoda taulukko. Lisätietoja taulukon/tietokantarakenteesta ja kullekin kentälle käytettävistä asetuksista saat virallisesta phpMyAdminin dokumentaatiosta.

Tässä on joitain yksinkertaisia ​​selityksiä käyttämistämme kentistä:

  • Nimi on kenttäsi nimi. Näkyy taulukosi yläreunassa.
  • Tyyppi– Tässä voit asettaa kentän tyypin. Esimerkiksi me valitsemme varchar koska tähän meidän on syötettävä merkkijono, jossa on nimi (jossa on kirjaimia, ei numeroita).
  • Pituus/arvot– käytetään määrittämään tämän kentän merkinnän enimmäispituus.
  • Indeksi– Käytämme "ID"-kentässämme "Ensisijainen" -indeksiä. Taulukkoa luotaessa on suositeltavaa olla yksi ID-kenttä. Sitä käytetään indeksoimaan taulukon tietueita, kun taulukoiden välisiä suhteita on määritetty. Se voidaan myös mainita täällä "A_I", joka tarkoittaa Automaattinen lisäys. Tämä asetus lisää indeksiä automaattisesti (1,2,3,4...).

Klikkaus Tallentaa ja pöytäsi luodaan.

Vaihe 2 - Luo PHP-koodi ja lisää merkintä MySQL-taulukkoon

Vaihtoehto 1 – MySQLi-menetelmä

Ensinnäkin sinun on muodostettava yhteys tietokantaan edellisen opetusohjelman mukaisesti. Tämän jälkeen voimme jatkaa SQL-kyselyllä tietueen lisäämiseksi MySQL-taulukkoon − LISÄÄ. Tässä on täydellinen koodiesimerkki yhteys- ja lisäysmenetelmällä:

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

Siten koodin ensimmäinen osa (rivit 3 – 18 ) viittaa tietokantayhteyden muodostamisosaan. Emme käy tätä osaa uudelleen läpi. Jos haluat tietää, mitä kukin rivi tarkoittaa, katso aiempaa oppaamme yhteyden muodostamisesta tietokantaan.

Aloitetaan rivistä 19 :

$sql = "INSERT INTO Opiskelijat (nimi, sukunimi, sähköpostiosoite) ARVOT ("Thom", "Vial", " [sähköposti suojattu]")";

Tämä on tärkein koodirivi, se tekee kaiken, mitä käsittelemme tässä opetusohjelmassa - lisäämällä tietueen tietokannan MySQL-taulukkoon. LAITTAA SISÄÄN on lauseke, joka lisää tietueen määritettyyn MySQL-tietokantataulukkoon. Esimerkissämme lisäämme tietoja taulukkoon Opiskelijat.

Siirryttäessä eteenpäin suluissa määrittelemme taulukon kentät, joihin lisäämme arvoja: (nimi, sukunimi, sähköpostiosoite). Tiedot lisätään tietyssä järjestyksessä. Jos kirjoitamme (sähköpostiosoite, sukunimi, nimi), arvot lisätään eri järjestyksessä.

Seuraava osa merkitystä ARVOT. Täällä asetamme arvomme aiemmin määritettyihin kenttiin. Näin jokainen kenttä saa oman arvonsa. Esimerkiksi meidän tapauksessamme se olisi jotain tällaista: nimi = Thom, sukunimi = Injektiopullo, sähköposti = [sähköposti suojattu] .

On tärkeää huomata, että täällä ollaan muodostumassa SQL-kysely PHP-koodin avulla. SQL-kyselyt tulee laittaa lainausmerkkeihin. Esimerkissämme kaikki lainausmerkkien ja $sql = jälkeen tuleva on SQL-kyselyä.

Koodin seuraava osa ( 20 – 22 rivit) suorittaa pyyntömme ja tarkistaa pyynnön onnistumisen:

If (mysqli_query($conn, $sql)) ( echo "Uusi tietue luotiin onnistuneesti"; )

Näyttöön tulee onnistumisviesti, jos kysely suoritettiin oikein.

Ja viimeinen osa ( 22 – 24 rivit) näyttää toisen viestin, jos pyyntömme epäonnistuu:

Else ( echo "Virhe: " . $sql . "
" . mysqli_error($conn); )

Tämä koodi näyttää meille virheilmoituksen, jos jokin meni pieleen.

Vaihtoehto 2 – PHP Data Object Method (P HP D data O -objekti)

Kuten edellisessä esimerkissä, meidän on ensin muodostettava yhteys tietokantaan, mikä tehdään uutta PDO-objektia luotaessa - edellinen opetusohjelma kertoo kuinka tämä tapahtuu. Koska MySQL-tietokantayhteys on PDO-objekti, meidän on käytettävä erilaisia ​​PDO-menetelmiä (eräänlaisia ​​toimintoja, jotka ovat osa tiettyä objektia) kyselyn valmistelemiseen ja suorittamiseen. Objektimenetelmiä kutsutaan seuraavasti:

$the_Object->the_Method();

PDO:n avulla voit "valmistella" SQL-koodin ennen sen suorittamista. SQL-kysely arvioidaan ja säädetään ennen suorittamista. Siten yksinkertainen SQL-injektiohyökkäys voidaan suorittaa täyttämällä SQL-koodi lomakekenttään. Esimerkiksi:

// Käyttäjä kirjoittaa tämän kirjautumislomakkeen käyttäjätunnuskenttään thom"; DROP DATABASE user_table; // Lopullisesta kyselystä tulee tämä "SELECT * FROM user_table WHERE username = thom"; DROP DATABASE user_table;

Koska SQL-koodi on syntaktisesti oikein, puolipiste tekee DROP DATABASE user_table uusi SQL-kysely ja käyttäjätaulukkosi poistetaan. Valmistetut lausekkeet eivät salli merkkejä Ja ; suorittaaksesi alkuperäisen pyynnön ja ohjeen PUDOTA TIETOKANTA ei koskaan teloiteta.

Aina Käytä valmiita kyselyitä, kun lähetät tai vastaanotat tietoja tietokannasta, jossa on SAN.

Jotta voit käyttää valmiita lausekkeita, sinun on luotava uusi muuttuja, joka kutsuu menetelmää valmistella() tietokantaobjektissa.

Oikeassa muodossa koodi näyttää tältä:

$palvelimennimi = "mysql.hostinger.com"; $tietokanta = "u266072517_nimi"; $käyttäjänimi = "u266072517_user"; $salasana = "buystuffpwd"; $sql = "mysql:host=$palvelimennimi;dbname=$tietokanta;"; $dsn_Options = ; // Luo uusi yhteys MySQL-tietokantaan käyttämällä PDO:ta, $my_Db_Connection on objektikokeilu ( $my_Db_Connection = new PDO($sql, $username, $password, $dsn_Options); echo "Yhdistetty onnistuneesti"; ) catch (PDOException $ error) ( echo "Yhteysvirhe: " . $error->getMessage(); ) // Aseta muuttujat henkilölle, jonka haluamme lisätä tietokantaan $first_Name = "Thom"; $last_Name = "Injektiopullo"; $sähköposti = " [sähköposti suojattu]"; // Täällä luomme muuttujan, joka kutsuu tietokantaobjektin preparat()-metodia // Parametriksi syötetään SQL-kysely, jonka haluat suorittaa, ja paikkamerkit kirjoitetaan seuraavasti: placeholder_name $my_Insert_Statement = $my_Db_Connection-> preparat("INSERT INTO Opiskelijat (nimi, sukunimi, sähköpostiosoite) ARVOT (:etunimi, :sukunimi, :sähköposti)" // Kerromme nyt skriptille, mihin muuttujaan kukin paikkamerkki todella viittaa käyttämällä bindParam()-metodia // Ensin); parametri on yllä olevassa käskyssä oleva paikkamerkki - toinen parametri on muuttuja, jonka tulisi viitata kohtaan $my_Insert_Statement->bindParam(:first_name, $first_Name->bindParam(:last_name, $last_Name); , $email); // Suorita kysely juuri määrittämillämme tiedoilla // Metodi execute() palauttaa TRUE, jos se on onnistunut ja FALSE, jos se ei ole, jolloin voit kirjoittaa omia viestejäsi, jos ( $my_Insert_Statement-> execute()) ( echo "Uusi tietue luotu onnistuneesti"; ) else ( echo "Tietuetta ei voida luoda"; ) // Tässä vaiheessa voit muuttaa muuttujien tietoja ja suorittaa sen uudelleen lisätäksesi dataa tietokantaan $first_Name = "John"; $last_Name = "Smith"; $sähköposti = " [sähköposti suojattu]"; $my_Insert_Statement->execute(); // Suorita uudelleen nyt, kun muuttujat ovat muuttuneet if ($my_Insert_Statement->execute()) ( echo "Uusi tietue luotiin onnistuneesti"; ) else ( echo "Tietuetta ei voida luoda"; )

Riveillä 28, 29 ja 30 käytämme menetelmää bindParam() tietokantaobjekti. On myös menetelmä bindValue(), erilainen kuin edellinen.

  • bindParam() – tämä menetelmä laskee tiedot, kun menetelmä suorittaa() saavutettu. Ensimmäisen kerran skripti saavuttaa menetelmän suorittaa() hän näkee sen $first_Name viittaa "Thomiin", sitoo tämän arvon ja suorittaa kyselyn. Kun komentosarja saavuttaa menetelmän toisen kerran suorittaa(), hän näyttää siltä $first_Name nyt viittaa "John", sitoo tämän arvon ja suorittaa kyselyn uudelleen uudella arvolla. On tärkeää ymmärtää, että luomme pyynnön kerran ja korvaamme sitten eri tiedot eri kohdissa skriptissä.
  • bindValue() – tämä menetelmä laskee tiedot heti, kun se saa vuoronsa. Arvosta lähtien $first_Name oli asetettu arvoon "Thom", kun saavutimme menetelmän bindValue(), sitä käytetään menetelmää kutsuttaessa suorittaa() varten $my_Insert_Statement.

Huomaa, että käytämme muuttujaa uudelleen $first_Name ja anna sille uusi arvo toisen kerran. Jos tarkistat tietokannan tämän skriptin suorittamisen jälkeen, molemmat annetut nimet ovat siellä, toisin kuin tämä muuttujan arvo $first_Name on sama kuin "John" tämän käsikirjoituksen lopussa. Muista, että PHP arvioi skriptin sisällön ennen sen suorittamista.

Jos muutat skriptiäsi korvaamalla bindParam päällä bindValue, lisäät "Thom Vial" MySQL-tietokantaan kahdesti ja John Smith ohitetaan.

Vaihe 3 – Varmista onnistuminen ja ratkaise yleiset ongelmat

Jos MySQL-tietokannassa suorittamamme kysely onnistui, näemme seuraavan viestin:

Yleisten virheiden ratkaiseminen

MySQLi

Muussa tapauksessa yllä olevan viestin sijaan näytetään virheilmoitus. Tehdään esimerkiksi yksi syntaksivirhe koodiimme ja saamme tämän:

Kuten näemme, koodin ensimmäinen osa on kunnossa, yhteys muodostettiin onnistuneesti, mutta SQL-kyselymme epäonnistui suoritettaessa.

"Virhe: INSERT INTO Opiskelijat (nimi, sukunimi, sähköpostiosoite) VALUES ("Thom", "Vial", " [sähköposti suojattu]") Sinulla on virhe SQL-syntaksissasi. Tarkista MySQL-palvelimen versiota vastaavasta oppaasta oikea syntaksi, jota haluat käyttää lähellä "(nimi, sukunimi, sähköpostiosoite) VALUES ("Thom", "Vial", " [sähköposti suojattu]")" rivillä 1"

Tapahtui syntaksivirhe, jonka vuoksi komentosarjamme epäonnistui. Virhe oli tässä:

$sql = "INSERT INTO Opiskelijat (nimi, sukunimi, sähköpostiosoite) ARVOT ("Thom", "Vial", " [sähköposti suojattu]")";

Kuten näet, käytämme kiharoita sulkujen sijasta. Tämä on väärin ja johtaa syntaksivirheeseen komentosarjassamme.

SAN

PDO-yhteyden rivillä 7 virheenkäsittelytila ​​on asetettu "näytä kaikki poikkeukset". Jos poistat tämän skriptistä ja pyyntö epäonnistuu, et saa virheilmoitusta. Jos poikkeukset ovat käytössä, havaitut ongelmat näytetään. Tätä on yleensä parasta käyttää skriptiä kehitettäessä, koska se voi paljastaa tietokantojen ja taulukoiden nimet, jotka haluat piilottaa kaikilta, jotka voivat saada luvattoman pääsyn tietoihisi. Yllä olevassa tapauksessa, kun sulkujen sijasta käytettiin kiharoita, virhe näyttää seuraavalta:

Vakava virhe: Tavoittamaton poikkeus "PDOException" ja viesti "SQLSTATE: Syntaksivirhe tai käyttöoikeusrikkomus: 1064 SQL-syntaksissasi on virhe; tarkista MySQL-palvelimesi versiota vastaavasta käsikirjasta oikea syntaksi käytettäväksi lähellä "(nimi, sukunimi, sähköpostiosoite) VALUES ("Thom", "Vial", " [sähköposti suojattu]")" rivillä 1"

Muita ongelmia, joita saatat kohdata:

  • Kentät on määritetty väärin (olemattomia kenttiä tai väärin kirjoitetut nimet).
  • Arvon tyyppi ei vastaa kentän tyyppiä. Esimerkiksi kun haluamme määrittää luvun arvon 47 ala Nimi, saamme virheilmoituksen, koska arvon odotetaan olevan merkkijono. Mutta jos määrität luvun lainausmerkeissä, esim. “47” , ei tapahdu virhettä, koska numeromme kirjoitetaan tähän kenttään merkkijonona.
  • Yritys syöttää tietoja taulukkoon, jota ei ole olemassa, tai taulukon nimen kirjoitusvirhe.

Kaikki nämä virheet voidaan korjata noudattamalla virheenkorjausoppaita tai tarkistamalla virheloki.

Kun tiedot on lisätty onnistuneesti, meidän pitäisi nähdä ne tietokannassamme. Tässä on esimerkki taulukosta, johon lisäsimme tietomme phpMyAdmin.

Johtopäätös

Tässä opetusohjelmassa opit käyttämään PHP-koodi tietueen lisäämiseksi MySQL-taulukkoon käyttämällä MySQLi Ja SAN. Tarkastelimme myös yleisiä virheitä ja niiden ratkaisuja. PHP-koodin lisääminen MySQL-tietokantaan on hyödyllistä, olitpa sitten opettelemassa ohjelmointia tai luomassa jo omaa verkkosivustoasi.

Tässä artikkelissa tarkastelemme ehkä joitain tärkeimmistä SQL-kyselyt. Tämä kyselyt tietueiden lisäämiseksi ja poistamiseksi tietokantataulukosta. Koska ERITTÄIN usein sinun täytyy lisää uusia tietueita taulukkoon, ja tee se automaattisesti, niin tämä materiaali on opittava.

Aloittaa SQL-kysely uuden tietueen lisäämiseksi taulukkoon:

INSERT INTO käyttäjät (kirjautuminen, pass) arvot ("TestUser", "123456")

Kun lisäät merkintää, komento " LAITTAA SISÄÄN", sitten sen taulukon nimi, johon lisäämme tietueen. Seuraavaksi tulee suluissa niiden kenttien nimet, jotka haluamme täyttää. Ja sitten sulkeissa sanan " arvot"Alamme listata valitsemiemme kenttien arvot. Tämän kyselyn suorittamisen jälkeen taulukkoomme tulee uusi merkintä.

Joskus vaaditaan päivitä taulukkomerkintä, tätä varten on seuraava SQL-kysely:

PÄIVITYS käyttäjien SET login = "TestUser2", pass="1234560" WHERE login="TestUser"

Tämä kysely on monimutkaisempi, koska sen rakenne on " MISSÄ", mutta siitä lisää alla. Ensin tulee komento " PÄIVITTÄÄ", sitten taulukon nimi ja sen jälkeen " ASETA"kuvaamme kaikkien niiden kenttien arvot, joita haluamme muuttaa. Se olisi yksinkertaista, mutta herää kysymys: " Mikä tietue pitäisi päivittää?". Siksi on olemassa" MISSÄ". Tässä tapauksessa päivitämme tietueen, kentän " Kirjaudu sisään"millä on väliä" TestUser Huomaa, että jos tällaisia ​​tietueita on useita, niin ehdottomasti kaikki päivitetään! Tämä on erittäin tärkeää ymmärtää, muuten voit menettää pöytäsi.

Puhutaanpa vähän lisää aiheesta" MISSÄ". Yksinkertaisten tasa-arvotarkistusten lisäksi on myös epätasa-arvoja sekä loogisia operaatioita: JA Ja TAI.

PÄIVITYS käyttäjien SET kirjautumistunnus = "TestUser2", pass="1234560" WHERE id< 15 AND login="TestUser"

The SQL-kysely päivittää nämä tiedot, id joita on vähemmän 15 JA kenttä" Kirjaudu sisään"on merkitys" TestUser"Toivottavasti olet ymmärtänyt suunnittelun" MISSÄ"koska se on erittäin tärkeää. Aivan" MISSÄ"käytetty kun tietueiden hakeminen taulukoista, ja tämä on useimmin käytetty tehtävä tietokantojen kanssa työskennellessä.

Ja lopuksi yksinkertainen SQL-kysely tietueiden poistamiseksi taulukosta:

POISTA käyttäjiltä WHERE login="TestUser2"

komennon jälkeen " POISTA LÄHTEESTÄ" on sen taulukon nimi, josta haluat poistaa tietueita. Seuraavaksi kuvataan "WHERE"-rakenne. Jos tietue täyttää kuvatut ehdot, se poistetaan. Kiinnitä jälleen huomiota, riippuen tietueiden määrästä, jotka täyttävät tila sen jälkeen" MISSÄ", mikä tahansa määrä niistä voidaan poistaa.

Kaikki sivuston tai verkkosovelluksen moduulit, joihin on syötettävä ja tallennettava joitain tietoja (esimerkiksi nimi, ikä, osoite jne.), käyttävät yksinkertaista mysql-kielen funktiota INSERT INTO `name_base` (nimi,arvo1,arvo2) ) ARVOT ('Vasya','1','2');

Kaikki muuttujat syötetään tietokantaan ensimmäisissä suluissa asettamiemme arvojen mukaan. Käsittelijän komentosarjan, tietokannan ja määritystiedoston koodaus on tärkeää ottaa huomioon. On suositeltavaa käyttää yleisintä UTF-8-koodausta.

Huomaa, että voit kirjoittaa tietokantaan kahdella tavalla.

Ensimmäinen tapa jos emme alun perin määritä tietokantataulukoiden solunimiä. Sitten meidän on lueteltava jokaisen solun kaikki muuttujat, eli kuinka monta solua tietokantataulukossa on, joten monet muuttujat tulisi luetella suluissa ARVO-arvon jälkeen.

Esimerkiksi:
Tietokantataulukossa on neljä solua. Tämä tarkoittaa, että VALUE (..) -elementin jälkeen kaikkien neljän muuttujan on oltava sulkeissa. Ja vielä yksi asia: jos muuttujaa ei ole olemassa, oletetaan, että se on valinnainen parametri. Sitten kirjoitamme vain tyhjän arvon lainausmerkkeihin "",

"INSERT INTO `name_base` ARVOT (NULL, `".$nimi."`,``,`2`)"; // kolmas tyhjä arvo kirjoitetaan lainausmerkkeihin

Mutta tällä pyynnöllä on joitain pieniä haittoja. Jos lisäät yhden solun tai kaksi solua tietokantataulukkoon, tämä kysely palauttaa virheilmoituksen. Koska tässä menetelmässä kaikkien kyselyn solujen luettelointi on pakollista.

Toinen tapa Jos INSERT INTO `name_base` (...) -kyselyn jälkeen, luettele kaikki solut tietokannan nimen jälkeen. Esimerkkiä on jo käsitelty edellä. Jos unohdit, kirjoitetaan se uudelleen:

"INSERT INTO `name_base`(`nimi`,`value`,`value2`) ARVOT (NULL, `".$nimi."`,``,`2`)";

Tässä on lueteltu kaikki solut (nimi,arvo1,arvo2) . Ja jos lisäät kaksi solua tietokantataulukkoon, kyselyn syntaksia ei tarvitse muuttaa. Mutta ellei meidän tarvitse heti lisätä yhteen pyyntöön niitä erittäin lisämuuttujia, joita tarvitsemme noille aivan uusille luoduille soluille.

Tämä virhe ilmenee hyvin usein pienen sivuston muutoksen jälkeen. Oletetaan, että järjestelmänvalvoja on lisännyt tietokantaan ylimääräisen solun, esimerkiksi tilan. Mutta käsikirjoitusprosessorilla ei ollut aikaa vaihtaa moduulia, tai se yksinkertaisesti unohti. Mutta joillakin sivustoilla on hyvin monimutkainen rakenne, ja virheen löytäminen voi viedä paljon aikaa ja vaivaa. Siksi on suositeltavaa käyttää toista tapaa kirjoittaa tietokantaan. Vaikka tällaisen virheen tekevät useammin aloittelevat web-ohjelmoijat.

Php pääsy mysql-tietokantaan. Käytännön esimerkkejä

Joten nyt pääsemme asian ytimeen, kun työskentelemme tietokantakyselyjen kanssa. Teemme kaiken käytännön esimerkkien avulla. Luodaan yksinkertainen skripti tallentaaksesi kommentit, jotka sivuston vierailijat jättävät.

Luodaan ensin tietokantaan taulukkoviesti, jossa on neljä solua. Ensimmäiseen soluun kirjoitamme kommentin id:n. Solun merkkien määrä on enintään kymmenen merkkiä automaattisen lisäyksen parametrilla. Tämä automaattinen asetus muuttuu aina, kun kommentti lisätään +1:een.

Seuraava solu on käyttäjän nimi. Merkkien määrä - enintään kaksisataa - kolmesataa merkkiä valintasi mukaan, parametri char. Sitten kommenttisolu - tähän soluun kirjoitamme itse kommentin tekstin. Jos haluat tallentaa suuria kommenttitekstejä, voit asettaa tekstiparametrin - sitten voit syöttää yksinkertaisesti suuria tekstejä, yli viisisataatuhatta merkkiä tai asettaa tinytext-parametrin, niin vähän vähemmän merkkejä mahtuu sisään, mutta se toimi vähän nopeammin.

Mutta meidän tapauksessamme pidämme mielessä, että vierailijat eivät kirjoita suuria tekstejä. Ja siksi rajoitamme itsemme ja tallennamme kaksi tuhatta merkkiä varchar-parametrilla merkkijonoarvojen tallentamiseksi.

Viimeiseen soluun kirjoitetaan päivämäärä, jolloin kommenttiteksti nauhoitettiin. Kirjoitamme numeerisessa muodossa sekunneissa käyttämällä nykyisen päivämäärän ja kellonajan funktiota (); Yksinkertaisuuden vuoksi asetamme funktion muuttujaan $time=time(); Ja luodaan solu tietokantaan. Kutsutaan sitä samalla nimellä kuin aika int-parametrilla (numeerisille arvoille). Kirjataanpa merkkien määrä - yksitoista on parempi (pienellä marginaalilla tulevaisuutta varten :-).

Tietokantavedos on seuraava:

Taulukon rakenne `msg` -- LUO TAULUKO, JOS EI OLE `msg` (`id` int(10) NOT NULL AUTO_INCREMENT, `nimi` char(250) NOT NULL, `comment` varchar(2000) NOT NULL, `time` int(11) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM OLETUSMERKKI=utf8 AUTO_LISÄYS=1 ;

Siinä kaikki, taulukko kommenteille on luotu. Nyt kirjoitamme lomakkeen kommentin kirjoittamista varten ja itse komentosarjan käsittelijän. Kommenttilomakkeen HTML-koodi on seuraava.

Kirjailijalta: oi, laulusta ei saa sanoja irti! Voit kuitenkin poistaa ne, päivittää ne tai lisätä muita. Tärkeintä on, että sanat syötetään tietokantaan. Tänään kerromme kuinka data tallennetaan MySQL:ään ja miten se tehdään oikein niin, että kappale kuulostaa!

Merkintöjen lisääminen phpMyAdminilla

MySQL DBMS:n hallintaan tarkoitettu phpMyAdmin-kuori toteuttaa "kevyt" toiminnallisuuden uusien tietueiden lisäämiseksi tietokantataulukoihin. Yksinkertaisuudensa ansiosta se on ihanteellinen sekä vihreille "nukkeille" että "laiskaille" ammattilaisille.

Jotta voit syöttää uusia tietoja taulukkoon, sinun on kirjauduttava ohjelmaan järjestelmänvalvojan oikeuksilla. Valitse sitten haluamasi tietokanta ja taulukko vasemmalla olevista luetteloista. Siirry sitten ylävalikosta "Lisää" -kohdan läpi.

Tämän jälkeen tehdäksesi tietueen MySQL-tietokantaan, täytä "Arvo"-kenttä kaikille sarakkeille seuraavassa ikkunassa ja napsauta "OK" alareunassa.

Yllä olevasta kuvakaappauksesta näet, että muokattava "Eläimet"-taulukko koostuu kahdesta sarakkeesta (kentästä): id ja name. Toisessa osassa määritellään kunkin sarakkeen tyyppi. Meidän tarvitsee vain syöttää arvo nimikenttään, koska id-sarake on ensisijainen avain ja se asetettiin automaattisesti kasvavaksi, kun taulukko luotiin. Tämä tarkoittaa, että MySQL luo automaattisesti id-kentän arvon lisäämällä 1 edelliseen kokonaislukuarvoon.

Saadaksesi selville, mikä MySQL:n tietotietuekenttä on ensisijainen avain, mene phpMyAdminissa valikkoon (luettelon vasemmalla puolella oleva taulukko) ylävalikon Rakenne-välilehdelle. Tässä on kuvaus kaikista taulukon kentistä, niiden tyypeistä ja lisäominaisuuksista.

Tietojen lisääminen SQL-kyselyillä

Mutta phpMyAdmin on vain kuori, ja todelliset järjestelmänvalvojat "puhuvat" MySQL-palvelimelle käyttämällä Structured Query Language -kieltä. Eli he "puhuvat" hänelle SQL-kielellä. Koska pyrimme todellisiksi ammattilaisiksi, sukeltamme hieman SQL-komentojen tutkimukseen käsiteltävän aiheen puitteissa. Tässä on kysely, jonka syöttämällä "SQL"-kenttään luot saman tietokannan:

LUO TAULUKKO Eläin (id MEDIUMINT EI NULL AUTO_LISÄYS, nimi CHAR(30) EI NULL, ENSISIJAINEN AVAIN (id));

LUO TAULUKKO Eläin (ID MEDIUMINT EI NULL AUTO_INCREMENT ,

nimi CHAR (30) EI NULL, ENSISIJAINEN AVAIN (id));

Kun olet luonut taulukon ja kirjoittanut tiedot MySQL-tietokantaan ("Insert"-välilehden kautta), ohjelma ilmoittaa, että eläimiin on lisätty rivi, jonka tunnistearvo on 1. Ja hieman alempana editori-ikkunassa Näyttöön tulee kyselykoodi, jonka kuori luo meille ja lähetti tietokantapalvelimelle .

Varauskoodi:

INSERT INTO `my_db1`.`animal` (`id`, `nimi`) ARVOT (NULL, "Kissa");

INSERT INTO ` my_db1 ` . ` eläin ` (` id ` , ` nimi ` ) ARVOT ( NULL , "Kissa" ) ;

Tutkitaanpa sitä tarkemmin. SQL:ssä INSERT-käskyä käytetään uuden rivin lisäämiseen taulukkoon. Se kertoo palvelimelle, että määritetyt arvot (ARVOT (NULL, 'Cat')) on lisättävä tietokantataulukkoon (my_db1 . animal) id- ja name-kenttiin.

Huomaa, että emme määritä id-sarakkeelle numeerista arvoa, vaan NULL-arvon, koska olemme "ottaneet käyttöön" automaattisen täytön (automaattisen lisäyksen) tälle kentälle.

Kuinka lisätä tietue PHP:llä

Kaikki tarkastelemamme on vain "alkusoittoa" päätapahtumalle, jossa "His Highness" palvelinpuolen ohjelmointikieli PHP tulee lavalle. Hänen ansiostaan ​​MySQL DBMS:nä levisi niin laajalle Internetissä.
Suurin osa World Wide Webistä on rakennettu näiden kahden Internet-tekniikan yhdistelmälle. Minne katsotkin, löydät ne kaikkialta: nykyaikaisista sisällönhallintajärjestelmistä, "kotikirjoitetuista" koneista ja palvelimelta.

Ei ole yllätys, että PHP tarjoaa niin monia sisäänrakennettuja toimintoja tietojen kirjoittamiseen MySQL:ään. Mutta keskitymme niistä tärkeimpiin. Tässä on koodi, joka lisää uuden "eläimen" eläintaulukkoon. Jos yrität tarpeeksi, voit kerätä koko eläintarhan tällä tavalla :)

$con_str=mysql_connect("localhost", "root", "", "db1"); if(mysql_connect("localhost","root"))( echo "Hei!!!"; ) mysql_select_db("db1",$con_str); $query_str="LISÄÄ `db1`.`eläin` (`id`, `nimi`) ARVOT (NULL, "koira")"; mysql_query($query_str); mysql_close();

$con_str = mysql_connect ("localhost" , "root" , "" , "db1" ) ;

if (mysql_connect("localhost" , "root" ) ) (

echo "Hei!!" ;

mysql_select_db("db1", $con_str);

$query_str= "INSERT INTO `db1`.`eläin` (`id`, `nimi`) ARVOT (NULL, "koira")";

mysql_query($query_str);

mysql_close();

Tämä koodi on liitettävä PHP-tiedostoon ja sijoitettava palvelimen puolelle.

Mysql_connect()-funktiolla muodostamme yhteyden MySQL-tietokantapalvelimeen. Funktio ottaa argumenteiksi isännän, DBMS-käyttäjänimen, salasanan ja sen tietokannan nimen, johon haluat muodostaa yhteyden. Meillä on tyhjä salasana, koska käytämme paikalliseen (asiakas)koneeseen asennettua palvelinta.

Havainnollistaaksemme kaikki kuvatut esimerkit kirjoittamisesta MySQL-tietokantaan PHP:llä, käytimme Denverin "herrasmiespakettia". Se sisältää paikallisen Apache-palvelimen, MySQL-palvelimen, phpMyAdminin ja useita muita hyödyllisiä työkaluja ohjelmakoodin luomiseen ja testaamiseen.

Sitten loogisessa jos-lohkossa tarkistimme yhteyden tietokantapalvelimeen. Sen jälkeen mysql_select_db()-funktiossa määritimme tietokannan, johon muodostamme yhteyden. Käynnistimme mysql_query()-funktion avulla SQL-kyselyn, joka on tallennettu muuttujaan $query_str. Ja lopuksi muodostettu yhteys suljettiin (mysql_close()-funktio). Jos nyt katsomme eläintarhaamme (eläinpöytää), löydämme sieltä uuden "lemmikin".

Kirjoittaakseen sen MySQL:ään PHP tarjosi "ystävällisesti" kaikki tarvittavat toiminnot. Pääasia, mihin aloittelijat palavat SQL:ää käyttäessään ohjelmakoodissa, on kyselyiden virheellinen kirjoittaminen, syntaksin rikkominen ja pakenevien merkkien (lainausmerkkien) vuorottelu.

Välttääksesi ylimääräisten "harmaiden" hiusten esiintymisen päässäsi, on parempi tarkistaa pyynnön oikeinkirjoitus phpMyAdminilla. Voit tehdä tämän asettamalla SQL-koodin ohjelmaeditoriin ja suorittamalla sen. Jos jotain on vialla, sovellus alkaa kiroilemaan, näyttää punaisen viestin ja ilmoittaa virheen sijainnin.

Kuten näet, MySQL:n avulla voit "kerätä" oman eläintarhasi ja muuttaa minkä tahansa "laulun" sanat oikein. Ja PHP on ihanteellinen MySQL-tietokantaan kirjoittamiseen, joten suosittelemme, että solmit "läheinen" ystävyys tämän "suuren" ohjelmointikielen kanssa!

Tässä viestissä haluan kertoa sinulle, kuinka lomakkeelle syötetyt tiedot siirretään tietokantaan. Joten luomme yksinkertaisen lomakkeen, jossa meillä on kaksi kenttää: käyttäjän nimi ja hänen sähköpostiosoitteensa:

Sinun nimesi:
Sähköpostisi:


Tällä lomakkeella voidaan rekisteröidä uusi käyttäjä, lähettää uutisia, kerätä tilastoja tai mitä tahansa... Yleensä käyttäjä syöttää tietonsa tähän lomakkeeseen: nimi ja sähköpostiosoite, klikkaa painiketta ja sitten tiedot menee PHP-skriptiin:

$nimi = $_POST["nimi"]; $sähköposti = $_POST["sähköposti"]; $tulos = mysqli_query("INSERT INTO käyttäjä (nimi, sähköpostiosoite) ARVOT ("$nimi", "$sähköposti")"); if ($result) ( echo "Tiedot tallennettu onnistuneesti!"; ) else ( echo "Tapahtui virhe, yritä uudelleen."; )


Mitä tässä käsikirjoituksessa tapahtuu? Selvitetään se nyt!
Lomakkeeseen syötetyt tiedot siirretään PHP-skriptiin (kirjoitettu yllä) POST-menetelmällä ja globaalia taulukkoa $_POST käyttämällä data muodostetaan muuttujiksi $name ja $email:

$nimi = $_POST["nimi"]; $sähköposti = $_POST["sähköposti"];


Kun muuttujat ovat valmiita syötettäväksi tietokantaan, luomme pyynnön. Mutta ensin, komentosarjojesi on oltava jo yhdistetty tietokantaan. Kirjoitin tässä säikeessä kuinka muodostaa yhteys tietokantaan: . Itse pyyntö näyttää tältä:

$tulos = mysqli_query("INSERT INTO käyttäjä (nimi, sähköpostiosoite) ARVOT ("$nimi", "$sähköposti")");


Tässä koodissa olemme ilmoittaneet, että seuraavat muuttujat lisätään käyttäjätaulukon nimi- ja sähköpostisoluihin: $nimi ja $sähköposti.
Seuraavaksi, jos kaikki meni hyvin, saamme viestin ehdosta:

Tietojen tallennus onnistui!


Jos ongelmia ilmenee eikä tietoja ole syötetty, saamme virheilmoituksen:

Tapahtui virhe. Yritä uudelleen.


Siinä kaikki!

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

Halutessasi voit lisätä kenttiä tietojen syöttämistä varten, esimerkiksi meidän on lisättävä kenttä käyttäjän kaupungin syöttämistä varten. Meillä on jo valmis käsikirjoitus (kirjoitettu yllä), nyt lisäämme vain kentän Kaupunkisi, kutsutaan muuttujaksi: $city . Ja niin edelleen tietojen syöttölomakkeessa, sen jälkeen:

Sähköpostisi:


lisätä:

Kaupunkisi:


php-skriptissä jälkeen:

$sähköposti = $_POST["sähköposti"];


lisätä:

$kaupunki = $_POST["kaupunki"];


Ja tietysti lisäämme sen myös pyyntöön, esimerkiksi näin:

$tulos = mysqli_query("INSERT INTO käyttäjä (nimi, sähköpostiosoite, kaupunki) ARVOT ("$nimi", "$sähköposti", "$kaupunki")");


Tähän sinun pitäisi päätyä:
Syöttömuoto:

Sinun nimesi:
Sähköpostisi:
Kaupunkisi:


Käsikirjoitus:

$nimi = $_POST["nimi"]; $sähköposti = $_POST["sähköposti"]; $kaupunki = $_POST["kaupunki"]; $tulos = mysqli_query("INSERT INTO käyttäjä (nimi, sähköpostiosoite, kaupunki) ARVOT ("$nimi", "$sähköposti", "$kaupunki")"); if ($result == true) ( ​​echo "Tiedot tallennettu onnistuneesti!"; ) else ( echo "Tapahtui virhe, yritä uudelleen."; )


Kuten näette, ei mitään monimutkaista! Tarvittaessa voit lisätä toisen kentän, toisen ja toisen...