php:n käyttö...

Yhteyden luominen eri tavoilla:

1) vanhanaikainen tapa muodostaa yhteys MySQL:ään:

$conn=mysql_connect($db_isäntänimi, $db_käyttäjänimi, $db_salasana) or die ("Ei yhteyttä palvelimeen");
mysql_select_db($db_database,$conn) or die ("Ei, yhteyttä tietokantaan ei voitu muodostaa");

Muuttujien selitykset alla.

Käytetään seuraavia toimintoja:

  • mysql_connect()- muodostaa yhteyden palvelimeen;
  • mysql_select_db()- muodostaa yhteys tietokantaan;

Samalla tarkistamme jatkuvasti virheitä tällä tavalla: tai kuole ("Virhe on sellainen ja sellainen"); - käännettynä tai kuolla sellaisella ja sellaisella virheellä - löytääksesi heti, missä virhe on.

config.php

// muuttujat tietokantaan yhdistämistä varten
$host = "paikallinen isäntä"; /isäntä
$käyttäjänimi = "juuri"; // salasana tietokantaan yhdistämiseksi
$salasana = ""; // salasana tietokantaan yhteyden muodostamiseksi - paikallisella tietokoneella se voi olla tyhjä.
$tietokannan_nimi = "oma-dolgi"; // tietokannan nimi

// vanha tapa muodostaa yhteys tietokantaan
mysql_connect($isäntä, $käyttäjänimi, $salasana) or die("Ei voi muodostaa yhteyttä luoda yhteyttä");

// valitse tietokanta. Jos on virhe, tulosta
mysql_select_db($tietokannan_nimi) or die(mysql_error());

index.php

request_once "config.php";


$result = mysql_query("SELECT nimi, rahat Dolgista ORDER BY Money DESC LIMIT 5") tai kuole(mysql_error());



";


while ($rivi = mysql_fetch_assoc($tulos)) (
";
}


mysql_free_result($tulos);

// Sulje yhteys
mysql_close();

2) Edistyksellisempi menettelytyyli - yhteys tietokantaan mysqlillä:

Tämä menetelmä:

  1. kätevä;
  2. jopa 40 kertaa nopeampi;
  3. lisääntynyt turvallisuus;
  4. on uusia ominaisuuksia ja toimintoja;

Esimerkki yhteyden muodostamisesta PHP:n tietokantaan valinnalla taulukosta

config.php

// yhteydet tietokantaan
$link = mysqli_connect("localhost", "käyttäjänimi", "salasana", "nimitietokanta"); // tähän syötetään tietosi suoraan: käyttäjätunnus, salasana ja tietokannan nimi, ensimmäinen kenttä on yleensä localhost

// lähtöliitäntävirhe
jos (!$linkki) (
echo "Virhe muodostettaessa yhteys tietokantaan. Virhekoodi: " . mysqli_connect_error();
poistua;
}

Huomaa - mysqli on käytössä kaikkialla, ei mysql!!!

index.php

request_once "config.php";

// Suorita pyyntö. Jos tapahtuu virhe, näytämme sen
jos ($tulos = mysqli_query($linkki,"VALITSE nimi, rahat velasta ORDER BY Money DESC LIMIT 5") (

Kaiku "Kenelle olen velkaa laskevassa järjestyksessä:

";

// Haetaan kyselyn tuloksia
while ($ rivi = mysqli_fetch_assoc($tulos)) (
echo $row["Nimi"] . "velalla". $row["Raha"] . " ruplaa.
";
}

// käytetyn muistin vapauttaminen
mysqli_free_result($tulos);

// Sulje yhteys
mysqli_close($linkki);
}

Kuten näet, jotkut kohdat ovat muuttuneet (kursiivilla).

3) Oliopohjainen menetelmä yhteyden muodostamiseksi MySQL-tietokantaan - käyttämällä menetelmiä ja luokkia:

Miinukset: Monimutkaisempi ja vähemmän altis virheille.

Plussat: lyhyys ja mukavuus kokeneille ohjelmoijille.

$conn = uusi mysqli($db_isäntänimi, $db_käyttäjänimi, $db_salasana, $db_tietokanta);
if($conn->connect_errno)(
die($yhdistys->yhteysvirhe);
) else (echo "Yhteys tietokantaan muodostettiin onnistuneesti";)

tässä periaatteessa kaikki on intuitiivista:

  • $db_isäntänimi on isäntä(useimmiten paikallinen isäntä),
  • $db_tietokanta - db nimi;
  • $db_username ja $db_password - käyttäjätunnus ja salasana vastaavasti!

Esimerkki yhteyden muodostamisesta tietokantaan php OOP -tyyliin taulukosta näytteenotolla

config.php

// yhteydet tietokantaan
$mysqli = uusi mysqli("paikallinen isäntä", "käyttäjänimi", "salasana", "nimitietokanta"); // tähän syötetään tietosi suoraan: käyttäjätunnus, salasana ja tietokannan nimi, ensimmäinen kenttä on yleensä localhost

// lähtöliitäntävirhe
if ($mysqli->connect_error) (
die ("DB-yhteysvirhe: (" . $mysqli->connect_errno . ") " . mysqli_connect_error) ;
}

Huomaa - mysqli on käytössä kaikkialla, ei mysql!!! ja toisin kuin edellisessä menetelmässä, näkyviin tulee nuolet “->”, jotka osoittavat, että tämä on OOP-tyyli.

index.php

request_once "config.php";

// Suorita pyyntö. Jos tapahtuu virhe, näytämme sen
if ($tulos = $ mysqli-> kysely("VALITSE nimi, rahat velatilauksesta Money DESC RAJALLA 5") (

Kaiku "Kenelle olen velkaa laskevassa järjestyksessä:

";

// Haetaan kyselyn tuloksia
while ($rivi = $tulos-> hae_assoc()) {
echo $row["Nimi"] . "velalla". $row["Raha"] . " ruplaa.
";
}

// käytetyn muistin vapauttaminen
$tulos->sulje();

// Sulje yhteys
$mysqli-> sulje();
}

Sinun tehtäväsi on löytää erot.

4) Viestintä tietokannan kanssa SAN:lla:

MySQL-tietokantaan yhdistettäessä käytetään valmiita lausekkeita (valmistusmenetelmää käyttäen) ja seurauksena on suurempi tietoturva ja suorituskyky.

konfigurointitiedosto edellisestä menetelmästä! - sama

index.php

// SAN-tyyli kommunikointiin MySQL:n kanssa
if ($stmt = $mysqli->prepare("SELECT Nimi, Voney FROM Dolg ORDER BY Money< ? LIMIT 5")) {

$stmt->bind_param("i", $summa);
$summa = 100000;

//aloita suoritus
$stmt->suorita();

// Muuttujien ilmoittaminen valmistetuille arvoille
$stmt->sidos_tulos($sarake1, $sarake2);

Kaiku "Kenelle olen velkaa laskevassa järjestyksessä:

";

// Haetaan kyselyn tuloksia
while ($stmt->fetch()) (
echo $col1 . "velalla". $col2 . " ruplaa.
";
}

// käytetyn muistin vapauttaminen
$stmt->sulje();

// Sulje yhteys
$mysqli->sulje();

Kuten näette, tämä on paljon monimutkaisempaa ja sinun on opittava SAN - tämä on erillinen aihe.

Muistan ne ajat, jolloin en vielä tiennyt mitä se oli mysql ja usein etsinyt tällaisia ​​artikkeleita Internetistä. Mutta jostain syystä niitä löydettiin harvoin. Nyt olen päättänyt julkaista sellaisen, jotta sieltä löytyy hyödyllisiä artikkeleita mysql Ja php on yksi lisää. Yritän kirjoittaa kaiken helposti ymmärrettävällä kielellä.

aloita mysql ja php

Joten ensin tarvitsemme paikallisen palvelimen voidaksemme toimia php-skriptit ja muodostaa yhteys tietokantaan (jäljempänä kutsun sitä DB:ksi, mikä tarkoittaa "tietokanta"). Jos sinulla ei vielä ole paikallista palvelinta, lue ensin Asennus ja asetukset paikallinen isäntä ja aloita sitten tietokannan tutkiminen mysql ja sen DBMS (tietokannan hallintatyökalu).

Jos sinulla on jo tämä palvelin, tee tämä. Ensinnäkin haluan esitellä sinulle DBMS:n PhpMyAdmin, sen avulla voit hallita (lisätä, poistaa, muuttaa) tietueita tietokannassa.

Tämä on pääsivu DBMS PhpMyAdmin. Täältä voit luoda oman tietokannan ja tallentaa siihen tarvittavat tietueet. Tämä on erittäin kätevää verkkosivustoja luotaessa, koska tiedot ovat jäsenneltyjä ja voit nopeasti saada minkä tahansa tietueen tietokannasta.

Kuten jo mainittiin, artikkelin ensimmäinen osa, johdanto mysql Ja phpmyadmin. Luulen, että nyt ymmärrät mitä mysql on ja voimme alkaa tutkia phpmyadminin toimivuutta. Aloittaaksemme meidän on luotava itse tietokanta. Hänellä on oma nimi, jolla sitten etsimme häntä.

Tässä on tietokannan yleinen rakenne:

Luodaksesi tietokannan, kirjoita syöttökenttään "Luo uusi tietokanta" -riville (PhpMyAdminin pääsivulla) mikä tahansa nimi (ei kyrillistä!) tulevaa tietokantaa varten. Luon tietokannan nimeltä "baza". Nyt meidän on tehtävä taulukko tietokannan rakennekaavion mukaisesti. Tätä varten sinulla on tietokannan luomisen jälkeen seuraava ikkuna:

Täällä luon taulukon nimeltä käyttäjät ja siinä 3 kenttää. Seuraavaksi phpmyadmin pyytää meitä asettamaan kunkin kentän rakenteen:

Täällä "Kenttä" -sarakkeessa sinun on ilmoitettava nimi, "Tyyppi" -kohdassa ilmoitetaan sinne tallennettavien tietojen tyyppi (INT on numero, VARCHAR on merkkijono tai pieni (!) teksti). Kohdassa "Lisäasetukset" ilmoitamme kenttään nimeltä "id" parametrin "auto_increament", mikä tarkoittaa, että se kasvaa aina, kun lisäät tietoja, ja asetamme sille parametrin "Primary Key" (laita ympyrä), mikä tarkoittaa, että ensimmäisen sarakkeen mukaan voimme yksilöidä kentän.

"Tunnista kenttä yksilöllisesti" tarkoittaa, että vaikka etu- ja sukunimi olisivat samat, "id"-sarakkeella on eri arvot (koska sitä kasvatetaan automaattisesti yhdellä joka kerta).

Napsauta nyt "Tallenna". Näin ollen loimme käyttäjätietokantaan käyttäjätaulukon, johon voimme tallentaa etu- ja sukunimen (tunnusta ei tarvitse lisätä, mysql tekee kaiken puolestamme). Loimme taulukon tietueiden tallentamista varten. Miten ne laitetaan sinne? Lue alta 😉

Valitse valikosta "Lisää" ja kirjoita vaaditut arvot vaadittuihin kenttiin. Nyt kuinka poistaa tai muuttaa arvoja mysql-tietokannassa PhpMyAdmin DBMS:llä... Poistaaksesi, mene "Selaa"-valikkoon ja napsauta punaista ristiä merkinnän vieressä:

Ja muokataksesi, napsauta kynää ja korvaa vaaditut kentät. No, tämä on oppitunnin loppu. Nyt voit hallita mysql-tietokantaa PhpMyAdminilla. Seuraavalla oppitunnilla opetan sinulle kuinka tallentaa, hakea, poistaa ja päivittää tietoja tietokannassa käyttämällä php:tä. Se on erittäin kätevä ja käytännöllinen.

Työskentely mysql-tietokannan kanssa php:stä

Joten ensin sinun on opittava muodostamaan yhteys jo luotuun tietokantaan. Käytä tätä varten seuraavaa koodia:

Yllä olevassa koodissa olen muodostanut yhteyden localhost-palvelimeen sisäänkirjautumisen avulla juuri joka ei vaadi salasanaa (joten emme määritä sitä). Kun olemme muodostaneet yhteyden tietokantaan, voimme suorittaa kaikki toiminnot, jotka suoritimme phpmyadmin DBMS:ssä. Eli erilaisten tietojen lisääminen, poistaminen, muuttaminen ja hakeminen. Nyt kohta kohdalta:

Tietueiden lisääminen SQL-tietokantaan php:ssä

$query="LISÄÄ `taulukkoon` (`määritä kenttä`,`määritä kenttä`) ARVOT ("mikä tahansa arvo","mikä tahansa arvo""); $tulos=mysql_query($kysely); if($result==true) ( ​​echo "Onnistui!"; ) else ( echo "Virhe!
".mysql_error(); )

Eli lisäyksen suorittaa INSERT-toiminto. Jos kaikki meni hyvin, mysql palauttaa tuloksen tosi tai muuten - false.

Voit määrittää niin monta kenttää kuin haluat, tärkeintä on, että ne ovat kaikki tietokannassa. Eli on esimerkiksi taulukko, jossa on kentät "nimi", "sukunimi" ja "kaupunki". Arvojen lisäämiseksi siihen käytämme seuraavaa koodia:

$query="INSERT INTO `users` (`nimi`,`sukunimi`,`kaupunki`) ARVOT ("Ruslan","Huzin","Kokshetau""); $tulos=mysql_query($kysely); if($result==true) ( ​​echo "Onnistui!"; ) else ( echo "Virhe!
".mysql_error(); )

Tietueiden poistaminen SQL-tietokannasta php:ssä

Poisto suoritetaan DELETE-toiminnolla. Tämän koodi olisi jotain tällaista:

$query="POISTA `käyttäjiltä` WHERE `name`="Ruslan" "; $tulos=mysql_query($kysely); if($result==true) ( ​​echo "Onnistui!"; ) else ( echo "Virhe!
".mysql_error(); )

Eli poistamme käyttäjätaulukosta kaikki rivit (tai yhden), joissa nimisarake on yhtä suuri kuin Ruslan-arvo.

Arvojen muuttaminen MySQL-tietokannassa php:ssä

Voimme myös tehdä muutoksia olemassa oleviin taulukon merkintöihin. Meidän on esimerkiksi korvattava nimisarakkeen arvo rivillä, jossa sukunimisarakkeen arvo on Huzin. Tätä varten suoritamme seuraavan koodin:

$query="PÄIVITYS `käyttäjät` SET `name`="omanimi" WHERE `sukunimi`="Huzin" "; $tulos=mysql_query($kysely); if($result==true) ( ​​echo "Onnistui!"; ) else ( echo "Virhe!
".mysql_error(); )

Arvojen hakeminen tietokannasta

Nyt tulee se hauskin osuus. Koska kirjoitimme jotain muistiin, meidän pitäisi saada se takaisin, eikö niin? Meidän on esimerkiksi saatava koko rivi käyttäjätaulukosta, jossa nimisarake on sama kuin Ruslan. Tätä varten tarvitsemme hieman erilaisen koodin kuin ensimmäisissä esimerkeissä. Tässä se on:

$query="VALITSE * FROM WHERE `name`="Ruslan" "; $tulos=mysql_query($kysely); if($result==true) ( ​​echo "Onnistui!"; ) else ( echo "Virhe!
".mysql_error(); ) $data=mysql_fetch_array($result); /* Nyt muuttuja tallentaa tiedot taulukosta */

Tässä tarvitsimme vielä yhden funktion kirjoittaaksemme valitut tiedot muuttujaan (taulukkoon) php:ssä. Päästäksemme valitulle riville kirjoitamme näin:

$data["sarakkeen nimi"]

eli saadaksesi sukunimen valitulta riviltä (jossa nimi oli Ruslan), meidän on kirjoitettava tulosteena:

echo $data["sukunimi"];

Ja kun valittiin taulukosta, he kirjoittivat SELECT *, tämä tähti tarkoittaa, että sinun on valittava kaikki sarakkeet riviltä. Jos haluamme esimerkiksi valita vain sukunimen, kirjoitamme SELECT `sukunimi`. Ja jos haluat valita useita rivejä taulukosta kerralla, tarvitset myös silmukan niiden näyttämiseen. Näin on esimerkiksi, jos Ruslan-sarakkeella on useita rivejä. Tässä on koodi:

$query="VALITSE * FROM WHERE `name`="Ruslan" "; $tulos=mysql_query($kysely); while($data=mysql_fetch_array($result)) ( echo $data["nimi"]."
".$data["sukunimi"]."


"; }

Nyt kaikki rivit, joiden nimisarake on yhtä suuri kuin Ruslan-arvo, näkyvät näytöllä.

Nyt olet tutustunut ohjaustoimintojen perustoimintoihin mysql-tietokanta suoraan osoitteesta php-skripti.

MySQL on eräänlainen relaatiotietokanta. MySQL on palvelin, johon useat käyttäjät voivat muodostaa yhteyden.

Kun muodostat yhteyden Internetiin, annatko käyttäjätunnuksesi ja salasanasi sekä palvelimen nimen, johon muodostat yhteyden? Kun työskentelet MySQL:n kanssa, käytetään samaa järjestelmää.

Vielä yksi asia: mikä on relaatiotietokanta? Taulukoihin perustuvat relaatiot. Microsoftin kuuluisa laskentataulukkoeditori, Excel, on itse asiassa relaatiotietokantaeditori.

Yhdistetään MySQL-palvelimeen

Voit muodostaa yhteyden MySQL-palvelimeen PHP:ssä käyttämällä mysqli_connect()-funktiota. Tämä toiminto käyttää kolmea argumenttia: palvelimen nimi, käyttäjätunnus ja salasana.

Mysqli_connect()-funktio palauttaa yhteystunnisteen, se tallennetaan muuttujaan ja sitä käytetään myöhemmin työskentelyyn tietokantojen kanssa.

MySQL-palvelimen yhteyskoodi:

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

Tässä tapauksessa työskentelen paikallisella koneella Denweressä, joten isäntänimi on localhost, käyttäjätunnus on root, eikä salasanaa ole.

Yhteys on myös suljettava, kun MySQL:n kanssa työskentely on valmis. Mysqli_close()-funktiota käytetään yhteyden sulkemiseen. Laajennamme esimerkkiä:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Virhe"); mysqli_close($linkki);

Täällä tarkistimme yhteystunnisteen totuuden; jos yhteydessämme on jotain vikaa, niin ohjelmaa ei suoriteta, die()-toiminto lopettaa suorituksensa ja näyttää selaimessa virheilmoituksen.

Yhteysvirheet

Seuraavia toimintoja käytetään yhteyden tarkistamiseen:

  • mysqli_connect_errno() - palauttaa viimeisen yhteysyrityksen virhekoodin. Jos virheitä ei ole, palauttaa nollan.
  • mysqli_connect_error() - palauttaa kuvauksen viimeisestä yhteysvirheestä MySQL-palvelimelle.
define("HOST", "localhost"); define("DB_USER", "root"); define("DB_SALASANA", ""); define("DB", "testaaja"); $link = mysqli_connect(HOST, DB_USER, DB_PASSWORD, DB); /* tarkista yhteys */ if (mysqli_connect_errno()) ( printf("Yhdistäminen epäonnistui: %s\n", mysqli_connect_error()); exit(); ) else ( printf("Yhdistäminen onnistui: %s\n" , mysqli_get_host_info($link)); )

Mysqli_get_host_info()-funktio palauttaa merkkijonon, joka sisältää käytetyn yhteyden tyypin.

Huomaa myös, että define-komennolla tallensin kaikki yhteysparametrit vakioiksi. Kun kirjoitat suuria projekteja ja MySQL-palvelimeen on yhteydessä useita tiedostoja, on kätevää tallentaa yhteysparametrit erilliseen tiedostoon ja lisätä se include or request -toiminnolla.

Tietokannan valitseminen

MySQL-palvelimella voi olla useita tietokantoja. Ensinnäkin meidän on valittava pohja, jonka kanssa meidän on työskenneltävä. PHP:ssä tätä varten on mysqli_connect()-funktiossa toinen parametri - tietokannan nimi.

Loin sen tietokoneelleni phpMyAdminin kautta nimellä testaaja. Yhdistetään siihen:

$link = mysqli_connect("localhost", "root", "", "testaaja"); if (!$link) die("Virhe"); mysql_close($linkki);

Joten olemme valinneet tietokannan, jonka kanssa työskentelemme. Mutta kuten tiedämme, relaatiotietokanta koostuu taulukoista, eikä tietokannassamme vielä ole taulukoita. Tietokanta luodaan tyhjäksi, ilman taulukoita. Taulukot on lisättävä siihen erikseen. Lisätään siihen nyt taulukko PHP:llä.

Luo taulukko

MySQL-tietokantojen nimessä SQL-osa tulee sanoista Structured Query Language, joka on käännetty strukturoiduksi kyselykieleksi. Kirjoitamme kyselyt SQL:llä ja lähetämme ne PHP-ohjelmasta MySQL-palvelimelle.

Taulukon luomiseksi meidän tarvitsee vain antaa CREATE TABLE -komento. Luodaan käyttäjät-niminen taulukko, jonka sarakkeisiin tallennetaan käyttäjien kirjautumiset (login-sarake) ja salasanat (salasanasarake).

$query = "LUO TABLE käyttäjät(kirjautuminen VARCHAR(20), salasana VARCHAR(20))";

Tässä koodissa olemme määrittäneet $query-muuttujalle tekstijonon, joka edustaa SQL-kyselyä. Luomme käyttäjät-nimisen taulukon, joka sisältää kaksi saraketta kirjautumistunnus ja salasana, molemmat tietotyyppiä VARCHAR(20). Puhumme tietotyypeistä myöhemmin, toistaiseksi huomautan vain, että VARCHAR(20) on merkkijono, jonka enimmäispituus on 20 merkkiä.

Käytämme PHP-funktiota mysqli_query() lähettääksemme kyselymme MySQL-palvelimelle. Tämä funktio palauttaa positiivisen luvun, jos toiminto oli onnistunut, ja epätosi, jos tapahtui virhe (pyynnön syntaksi on virheellinen tai ohjelmalla ei ole oikeutta suorittaa pyyntöä).

$link = mysqli_connect("localhost", "root", "", "testaaja"); if (!$link) die("Virhe"); $query = "LUO TABLE käyttäjät(kirjautuminen VARCHAR(20), salasana VARCHAR(20))"; mysqli_query($kysely); mysqli_close($linkki);

SQL-kyselyä ei tarvitse kirjoittaa muuttujaan, vaan se voidaan kirjoittaa suoraan argumenttina mysql_query()-funktiolle. Se vain tekee koodista luettavamman.

Tällä skriptillä on yksi haittapuoli - se ei tulosta selaimeen mitään. Lisätään viesti:

$link = mysqli_connect("localhost", "root", "", "testaaja"); if (!$link) die("Virhe"); $query = "LUO TABLE käyttäjät(kirjautuminen VARCHAR(20), salasana VARCHAR(20))"; if (mysqli_query($query)) echo "Taulukko on luotu."; else echo "Taulukkoa ei luotu."; mysqli_close($linkki);

Jos suoritamme tämän skriptin uudelleen, näemme selaimessa viestin: "Taulukkoa ei ole luotu." Tosiasia on, että taulukko luotiin ensimmäisen käynnistyksen aikana, ja samannimistä taulukkoa on mahdotonta luoda uudelleen. Edessämme on virhetilanne, joten on aika puhua virheiden käsittelystä, kun työskentelet MySQL:n kanssa.

Käsittelyvirhe

Ohjelman virheenkorjauksen yhteydessä saatamme tarvita tarkkoja tietoja virheestä. Kun MySQL:ssä tapahtuu virhe, tietokantapalvelin asettaa virhenumeron ja rivin sen kuvauksella. PHP:llä on erikoistoimintoja näiden tietojen käyttämiseksi.

  • mysqli_errno() - palauttaa virhenumeron.
  • mysqli_error() - palauttaa virhettä kuvaavan merkkijonon.

Lisätään nyt funktio mysql_error() komentosarjaomme:

$link = mysql_connect("localhost", "root", "", "testeri"); if (!$link) die("Virhe"); $query = "LUO TABLE käyttäjät(kirjautuminen VARCHAR(20), salasana VARCHAR(20))"; if (mysqli_query($query)) echo "Taulukko on luotu."; else echo "Taulukkoa ei luotu: ".mysqli_error(); mysqli_close($linkki);

Nyt komentosarjamme palauttaa selaimeen rivin: "Taulukkoa ei luotu: Taulukko "käyttäjät" on jo olemassa."

Taulukon poistaminen

Joten nyt meillä on pöytä, jota emme tarvitse. On aika oppia pudottamaan taulukoita tietokannasta.

Voit pudottaa taulukon käyttämällä DROP TABLE -komentoa ja sen jälkeen taulukon nimeä.

$link = mysqli_connect("localhost", "root", "", "testaaja"); if (!$link) die("Virhe"); $query = "DOP TABLE käyttäjät"; if (!mysqli_query($query)) echo "Virhe poistettaessa taulukkoa: ".mysqli_error(); else echo "Taulukko poistettu."; mysqli_close($linkki);

Tulokset

Olemme siis hallineet MySQL:n perusteet. Mitä opimme tekemään:

  • Yhdistä MySQL-tietokantaan mysqli_connect()-funktiolla.
  • Sulje yhteys MySQL-palvelimeen mysqli_close()-funktiolla.
  • Lähetä SQL-kyselyt MySQL-palvelimelle mysqli_query()-funktiolla.
  • Opimme SQL-kyselyn taulukon luomiseen: luo taulukko.
  • Opimme SQL-kyselyn taulukon poistamiseksi: pudota taulukko.
  • Opimme käsittelemään virheitä mysqli_errno()- ja mysqli_error()-funktioiden avulla.

Sitten tarkastellaan tarkemmin MySQL-tietotyyppejä.

Lue seuraava oppitunti:

TYÖSKENTELY MySQL-TIETOKANNAN KANSSA PHP-TYÖKALUJEN KANSSA

Luento. Valmisteli Prokhorov V.S.


1. PHP-SKENARIOJEN YHTEYS MySQL-taulukoiden kanssa

Katsotaanpa yleisimmin käytettyjä toimintoja, joiden avulla voit työskennellä MySQL-tietokannan kanssa PHP:n avulla.

Kun PHP ja MySQL ovat vuorovaikutuksessa, ohjelma on vuorovaikutuksessa DBMS:n kanssa joukon toimintoja.

1.1 Yhteys palvelimeen. Toimintomysql_connect

Ennen kuin työskentelet tietokannan kanssa, sinun on muodostettava verkkoyhteys siihen ja valtuutettava käyttäjä. Tähän käytetään mysql_connect()-funktiota.

resurssi mysql_connect(]])

Tämä toiminto muodostaa verkkoyhteyden MySQL-tietokantaan, joka sijaitsee isäntäpalvelimella $server (oletuksena tämä on localhost, eli nykyinen tietokone) ja palauttaa avoimen yhteyden tunnuksen. Kaikki muut työt suoritetaan tällä tunnisteella. Kaikki muut funktiot, jotka käyttävät tätä tunnistetta (kahvaa) argumenttina, tunnistavat valitun tietokannan yksilöllisesti. Ilmoita rekisteröityessäsi käyttäjänimi $käyttäjänimi ja salasana $salasana (oletusarvoisesti käyttäjänimi, josta nykyinen prosessi suoritetaan - skriptien virheenkorjauksen yhteydessä: root ja tyhjä salasana):

$dbpasswd = ""; //Salasana

//Näytä varoitus

kaiku("

");

Muuttujat $dblocation, $dbuser ja $dbpasswd tallentavat palvelimen nimen, käyttäjänimen ja salasanan.

1.2 Yhteyden katkeaminen palvelimesta. Toimintomysql_close

Yhteys MySQL-palvelimeen suljetaan automaattisesti, kun komentosarja on valmis tai kun mysql_close-toiminto kutsutaan

bool mysql_close()

Tämä toiminto sulkee yhteyden MySQL-palvelimeen ja palauttaa tosi, jos toiminto on onnistunut ja false muuten. Funktio ottaa argumentiksi mysql_connect-funktion palauttaman tietokantayhteyskahvan.

$dblocation = "localhost"; //Palvelimen nimi

$dbuser = "juuri"; //Käyttäjänimi

$dbpasswd = ""; //Salasana

//Yhdistä tietokantapalvelimeen

//Pysäytä virhetulostus @-symbolilla ennen funktion kutsumista

$dbcnx = @ mysql_connect($dblocation, $dbuser, $dbpasswd);

if (!$dbcnx) //Jos kuvaaja on 0, yhteyttä ei muodosteta

//Näytä varoitus

kaiku("

Tietokantapalvelin ei ole tällä hetkellä käytettävissä, joten sivua ei voida näyttää oikein.");

if (mysql_close($dbcnx)) //sulje yhteys

echo("Tietokantayhteys katkaistu");

echo("Emme voineet muodostaa yhteyttä");

1.3 Tietokannan luominen. CREATE DATABASE -toiminto

Komento - luo tietokanta on vain palvelimen järjestelmänvalvojan käytettävissä, eikä sitä voi suorittaa useimmilla hosting-sivustoilla:

CREATE DATABASEDatabaseName

Luo uuden tietokannan nimeltä DatabaseName.

Esimerkki työskentelystä tämän toiminnon kanssa:

@mysql_query("LUO TIETOKANTA $dbname");

On suositeltavaa käyttää heittomerkkejä ("SQL - komento") kaikkialla erottimina riveille, jotka sisältävät SQL - komentoja. Tämä varmistaa, että mitään $-muuttujaa ei vahingossa interpoloida (eli korvata sen arvolla), ja lisää komentosarjan turvallisuutta.

CREATE DATABASE -tietokannan luontikomento on vain pääkäyttäjän käytettävissä, ja useimmilla isännöintisivustoilla yksinkertaisen käyttäjän on mahdotonta suorittaa sitä. Se on vain palvelimen järjestelmänvalvojan käytettävissä.

Luodaan kokeita varten testikantatietokanta suorittamalla SQL-kysely komentoriviltä. Voit tehdä tämän kirjautumalla MySQL:ään ja kirjoittamalla MySQL-komentoriville:

mysql luo tietokanta testikanta;

Tämän jälkeen sinun tulee kirjoittaa:

mysql>use testbase;

Tietokanta luotu:


1.4 Tietokannan valinta. Toimintomysql_select_db

Ennen kuin lähetämme ensimmäisen pyynnön MySQL-palvelimelle, meidän on ilmoitettava, minkä tietokannan kanssa aiomme työskennellä. Mysql_select_db-funktio on suunniteltu tähän:

bool mysql_select_db(merkkijono $tietokannan_nimi [,resurssi $linkin_tunniste])

Se ilmoittaa PHP:lle, että tulevat toiminnot $link_identifier-yhteydessä käyttävät $database_name-tietokantaa.

Tämän funktion käyttäminen vastaa use-komennon kutsumista SQL-kyselyssä, eli mysql_select_db-funktio valitsee tietokannan jatkotyöskentelyä varten ja kaikki myöhemmät SQL-kyselyt sovelletaan valittuun tietokantaan. Funktio ottaa argumenteiksi valitun tietokannan tietokannan_nimi ja yhteyskuvausresurssin nimen. Funktio palauttaa tosi, jos toiminto oli onnistunut ja false muussa tapauksessa:

//Tietokannan yhteyskoodi

if (! @mysql_select_db($dbname, $dbcnx))

//Näytä varoitus

kaiku("

Tietokanta ei ole tällä hetkellä käytettävissä, joten sivua ei voida näyttää oikein.");

1.5 Virheiden käsittely

Jos MySQL:n kanssa työskennellessä tapahtuu virheitä (esim. kyselyn sulkeet eivät ole tasapainossa tai parametreja ei ole tarpeeksi), niin virheilmoitus ja sen numero saadaan kahdella alla kuvatulla funktiolla.

On tärkeää käyttää näitä toimintoja huolellisesti ja ripeästi, koska muuten skriptien virheenkorjaus voi vaikeutua.

● Toiminto:

int mysql_errno()

palauttaa viimeisimmän raportoidun virheen numeron. Yhteystunniste $link_identifier voidaan jättää pois, jos komentosarjan suorittamisen aikana muodostettiin vain yksi yhteys.

● Toiminto:

merkkijono mysql_error()

ei palauta numeroa, vaan merkkijonon, joka sisältää virheilmoituksen tekstin. Sitä on kätevä käyttää virheenkorjaustarkoituksiin. Yleensä mysql_error käytetään yhdessä or die() -rakenteen kanssa, esimerkiksi:

@mysql_connect("localhost", "user", "salasana")

or die("Virhe muodostettaessa yhteys tietokantaan: ".mysql_error());

@-operaattori, kuten tavallista, estää normaalin varoituksen, joka saattaa ilmetä virheen sattuessa.

PHP:n uusimmissa versioissa MySQL-toimintojen varoituksia ei kirjata oletuksena lokiin.

1.6 MySQL-yhteyden automatisointi. Tiedosto (config.php)

Tyypillisesti sivustolla on useita komentosarjoja, jotka tarvitsevat pääsyn samaan tietokantaan.

MySQL-yhteyden muodostamisesta vastaava koodi on suositeltavaa erottaa erilliseksi tiedostoksi ja yhdistää se sitten tarvittaviin skripteihin include-toiminnolla.

On järkevää sijoittaa tietokannan yhdistämisen, valinnan ja luomisen funktiot samaan tiedostoon (config.php), jossa ilmoitetaan muuttujat palvelimen nimellä $dblocation, käyttäjätunnuksella $dbuser, salasanalla $dbpasswd ja tietokannan nimellä $dbname:

config.php listaus:

//config.php-koodi tiedostosta, joka sisältää parametrit palvelimeen yhdistämistä ja tietokannan valitsemista varten

//lähettää yhteysvirheilmoitukset selaimeen

$dblocation = "localhost"; //Palvelimen nimi

$dbname = "lisää tietokannan nimi" //Tietokannan nimi: luodaan tai olemassa

$dbuser = "juuri"; //Tietokannan käyttäjätunnus

$dbpasswd = ""; //Salasana

//Yhdistä tietokantapalvelimeen

//Pysäytä virhetulostus @-symbolilla ennen funktion kutsumista

$dbcnx=@mysql_connect($dblocation,$dbuser,$dbpasswd);

if (!$dbcnx) //Jos kuvaaja on 0, yhteyttä tietokantapalvelimeen ei muodosteta

//Näytä varoitus

kaiku("

Tietokantapalvelin ei ole tällä hetkellä käytettävissä, joten sivua ei voida näyttää oikein.

");

//Luo tietokanta $dbname - vain pääkäyttäjä voi tehdä tämän

//Jos tietokanta on jo olemassa, tapahtuu ei-kohtalokas virhe

@mysql_query("LUO TIETOKANTA, jos sitä ei ole olemassa $dbname');

//Yhteyskoodi tietokantaan: teemme yksiselitteisen valinnan juuri luodusta tai jo olemassa olevasta tietokannasta

//Pysäytä virhetulostus @-symbolilla ennen funktion kutsumista

if(!@mysql_select_db($dbname, $dbcnx)) //Jos kuvaaja on 0, yhteyttä tietokantaan ei muodosteta

//Näytä varoitus

kaiku("

Tietokanta ei ole tällä hetkellä käytettävissä, joten sivua ei voida näyttää oikein.

");

//Pieni aputoiminto, joka tulostaa viestin

//virhesanoma tietokantakyselyn virheen sattuessa

funktio puterror($viesti)

kaiku("");


2. TIETOKANTAKYSELYJEN SUORITTAMINEN

2.1 Taulukon luominen. ToimintoLUO TAULU:

LUO TAULUKON TableName (Kentänimen tyyppi, KentänNimen tyyppi)

Tämä komento luo tietokantaan uuden taulukon, jossa on sarakkeet (kentät), jotka on määritelty niiden nimillä (FieldName) ja määritetyillä tyypeillä. Taulukon luomisen jälkeen voit lisätä siihen tietueita, jotka koostuvat tässä komennossa luetelluista kentistä.

Listaus test_11.php. Ohjelma, joka luo uuden taulukon tietokantaan:

include "config.php";//Yhdistä palvelimeen ja valitse tietokanta

mysql_query("LUO TAULUKKO jos ei ole olemassa ihmisiä

ID INT AUTO_INCREMENT PRIMARY KEY,

or die("MySQL-virhe: ".mysql_error());


Tämä komentosarja luo uuden taulukon, jossa on kaksi kenttää. Ensimmäisessä kentässä on tyyppi INT (kokonaisluku) ja nimi id. Toinen on TEKSTI-tyyppi (tekstimerkkijono) ja nimen nimi.

Jos taulukko on olemassa, or die() -rakenne toimii.

Valinnainen jos ei ole -lause, kun se on määritetty, kertoo MySQL-palvelimelle, että sen ei pitäisi luoda virhesanomaa, jos tietokannassa on jo määritetynniminen taulukko.

Opimme muodostamaan yhteyden MySQL-palvelimeen, valitsemaan käytettävän tietokannan, opimme PHP-toiminnon lähettää kyselyitä MySQL-palvelimelle, opimme kaksi yksinkertaista kyselyä (taulukon luominen ja poistaminen) ja opimme sulkemaan yhteyden.

Nyt sukeltamme syvemmälle MySQL-kyselyihin. Joten aloitetaan!

Taulukon luominen - CREATE TABLE

Nyt meillä on tyhjä tietokanta, siinä ei ole taulukoita. Joten ensin luomme taulukon. Tiedämme jo, kuinka tämä tehdään ensimmäisestä osasta lähtien.

Tässä on skriptikoodi, joka luo tarvitsemamme levyn:

$link = mysqli_connect("localhost", "root", "", "testaaja"); if (!$link) die("Virhe"); $query = "LUO TABLE käyttäjät(kirjautuminen VARCHAR(20), salasana VARCHAR(20))"; if (mysqli_query($link, $query)) echo "Taulukko on luotu."; else echo "Taulukkoa ei luotu: ".mysqli_error(); mysqli_close($linkki);

Taulukossamme on vain kaksi kenttää: käyttäjätunnus ja salasana. Toistaiseksi emme tarvitse enempää, älkäämme mutkistako prosessia.

Joten taulukko on luotu.

Rivien (tietueiden) lisääminen taulukkoon - INSERT

Voit lisätä uuden rivin taulukkoon SQL-lisäyskomennolla. Tässä on esimerkki:

$link = mysqli_connect("localhost", "root", "", "testaaja"); if (!$link) die("Virhe"); $query = "LISÄÄ käyttäjiin (kirjautumistunnus, salasana) VALUE ("zeus", "pass123")"; if (mysqli_query($link, $query)) echo "Käyttäjä lisätty."; else echo "Käyttäjää ei lisätty: " . mysqli_error(); mysqli_close($linkki);

SQL-kysely koostuu INSERT INTO -komennosta, tietokannan nimestä käyttäjät, sitten kenttien nimet suluissa, sitten sanasta ARVO ja sen jälkeen suluissa lisättävät arvot. Arvot ovat lainausmerkeissä.

Pyynnön syntaksi näyttää tältä:

INSERT INTO taulukon_nimi (sarake1, sarake2) VALUE ("x1", "x2")

Toisissa suluissa olevat lainausmerkit ovat pakollisia.

Arvojen tilalla voi olla muuttujia. Tässä on esimerkki:

$link = mysqli_connect("localhost", "root", "", "testaaja"); if (!$link) die("Virhe"); $login = "zeus"; $salasana = "pass123"; $query = "LISÄÄ käyttäjiin (kirjautumistunnus, salasana) VALUE ("$sisäänkirjautuminen", "$salasana")"; if (mysqli_query($link, $query)) echo "Käyttäjä lisätty."; else echo "Käyttäjää ei lisätty: " . mysqli_error(); mysqli_close($linkki);

Tässä esimerkissä ei tietenkään ole mitään järkeä. Aloittelijoille voi olla hyödyllistä kuulla, että tällä tavalla käyttäjätunnukset ja salasanat, jotka käyttäjät antavat rekisteröinnin yhteydessä, tallennetaan tietokantaan. Nämä tiedot tallennetaan muuttujiin ja kirjoitetaan sitten varmennuksen jälkeen tietokantaan.

On nopea tapa lisätä useita rivejä yhdellä INSERT-käskyllä:

LISÄÄ käyttäjiin (kirjautumistunnus, salasana) VALUE ("bob", "eee333"), ("Rooki", "12345"), ("magy", "olol88e8")

Kuten näet, luetellut tiedot erotetaan yksinkertaisesti pilkuilla.

Joten käyttämällä INSERT-komentoa opimme lisäämään tietueita taulukkoon. Mene eteenpäin.

Näytä taulukko: SELECT-komento

Nyt meillä on käyttäjätaulukko, jossa on rivejä. Edellinen komentosarja voidaan suorittaa useita kertoja, ja joka kerta se lisää rivin taulukkoon. Nyt emme ehkä tiedä kuinka monta riviä meillä on taulukossa. Ja haluan tietää, mitä olemme kirjoittaneet siihen.

Voit hakea tietoja taulukosta käyttämällä SELECT SQL -komentoa. *-merkki tarkoittaa, että pyydämme kaikkia tietoja, sitten sanan FROM jälkeen kirjoitamme sen taulukon nimen, josta haluamme saada tietoja.

Kysytään kaikki tiedot käyttäjätaulukosta:

$link = mysqli_connect("localhost", "root", "", "testaaja"); if (!$link) die("Virhe"); $query = "VALITSE * käyttäjiltä"; $tulos = mysqli_query($linkki, $kysely); if (!$result) echo "Tapahtui virhe: " . mysqli_error(); else echo "Data vastaanotettu"; mysqli_close($linkki);

Mysqli_query()-funktio palautti meille kyselyn tuloksen tunnisteen - laitoimme sen muuttujaan ja työskentelemme sen kanssa myöhemmin muilla PHP-funktioilla.

Pyydettyjen tietueiden määrä

Määritetään kuinka monta riviä kyselyssämme on? Ajoin skriptin tietueen lisäämiseksi taulukkoon, en muista kuinka monta kertaa enkä nyt tiedä kuinka monta riviä taulukossani on.

Voit määrittää kyselyn tuloksen rivien määrän käyttämällä mysqli_num_rows()-funktiota. Tälle funktiolle välitetään kyselytuloksen tunniste ja se palauttaa tietueiden määrän.

$link = mysqli_connect("localhost", "root", "", "testaaja"); if (!$link) die("Virhe"); $query = "VALITSE * käyttäjiltä"; $tulos = mysqli_query($linkki, $kysely); if (!$result) echo "Tapahtui virhe: " . mysqli_error(); else echo "Data vastaanotettu"; $count = mysqli_num_rows($tulos); echo "Taulukon rivien kokonaismäärä: $count."; mysqli_close($linkki);

Jos meidän on selvitettävä tietueiden lukumäärä taulukossa, yllä oleva menetelmä ei ole sopivin. Täältä selvisimme kyselyssä löydettyjen tietueiden määrän, mutta taulukon tietueiden lukumäärää haetaan eri tavalla.

Tietueiden määrä taulukossa SELECT COUNT(*)

Voit selvittää taulukon tietueiden määrän komennolla SELECT COUNT(*) FROM taulukon_nimi.

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Virhe"); mysqli_select_db("testeri"); $query = "VALITSE * käyttäjiltä"; $tulos = mysqli_query($linkki, $kysely); if (!$result) echo "Tapahtui virhe: " . mysqli_error(); else echo "Data vastaanotettu."; $count = mysqli_fetch_row($tulos); echo "Taulukon rivien kokonaismäärä: $count."; mysqli_close($linkki);

Huomaa, että tässä käytimme uutta PHP-funktiota mysqli_fetch_row() tietojen hakemiseen. Tämä funktio palauttaa kyselyn tuloksen rivin yksinkertaisen taulukon muodossa; meidän tapauksessamme rivillä on yksi kenttä ja sen indeksi on 0.

Kyselyn tuloksen katselu silmukassa

Suoritettuaan SQL-kyselyn SELECT-komennolla ja saatuaan kyselyn tulostunnuksen, PHP luo sisäisen osoittimen tulostietuejoukkoon. Tämä osoitin siirtyy automaattisesti seuraavaan tietueeseen, kun olet avannut nykyisen tietueen. Tämän mekanismin ansiosta on erittäin kätevää selata SELECT-kyselyn tulosjoukkoa.

PHP:ssä on useita toimintoja, joilla saat sen kentistä koostuvan taulukon jokaiselle tuloksena olevan kyselyn riville. Otetaan esimerkiksi mysqli_fetch_row()-funktio. Tämä funktio välittää pyynnön tunnisteen ja palauttaa taulukon. Joten silmukassa tarkastellaan koko kyselyn tulosta, ja kun kyselytuloksen loppu saavutetaan, funktio palauttaa arvon false .

Joten kysymme kaikki tiedot käyttäjätaulukosta (SELECT * FROM käyttäjät).


"; while ($rivi = mysqli_fetch_row($result)) ( echo "Kirjaudu sisään: $rivi. Salasana: $rivi.
"; ) mysqli_close($link);

Mysqli_fetch_row()-funktio palauttaa yksinkertaisen taulukon. Jokaisessa silmukan iteraatiossa saamme taulukosta rivin sisältävän taulukon, jonka kenttiin pääsemme määrittämällä numeerisen indeksin.

Sama voidaan tehdä mysql_fetch_assoc()-funktiolla, se palauttaa assosiatiivisen taulukon.

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Virhe"); mysqli_select_db("testeri"); $tulos = mysqli_query($link, "SELECT * FROM käyttäjiltä"); if (!$result) echo "Tapahtui virhe: " . mysqli_error(); else echo "Data vastaanotettu.
"; while ($row = mysqli_fetch_assoc($result)) ( echo "Kirjaudu sisään: $rivi. Salasana: $rivi.
"; ) mysqli_close($link);

On myös toimintoja mysqli_fetch_array() - palauttaa minkä tahansa tyyppisen taulukon, ja mysqli_fetch_object() - palauttaa objektin.

SELECT DISTINCT -kysely - yksilölliset kenttäarvot

Luodaan uusi taulukko:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Virhe"); mysqli_select_db("testeri"); // poista olemassa oleva taulukko mysqli_query($link, "DROP TABLE users"); // luo uusi taulukko $query = "LUO TABLE käyttäjät(nimi VARCHAR(20), sukunimi VARCHAR(20), ikä TINYINT EI ALKUUN)"; if (mysqli_query($link, $query)) echo "Taulukko on luotu.
"; else echo "Taulukkoa ei luotu: " . mysqli_error(); // toiminto tietueiden lisäämiseksi taulukkoon funktio add_new_line($link, $query) ( if (!mysqli_query($link, $query)) echo "Käyttäjä ei lisätty : " . mysqli_error(); ) // lisää tietueita add_new_line($link, "INSERT INTO käyttäjät (nimi, sukunimi, ikä) VALUE ("Max", "Jayson", "33")"); add_new_line($link , "INSERT INTO käyttäjät (nimi, sukunimi, ikä) VALUE ("Bob", "Freeman", "26")"); add_new_line($link, "INSERT INTO käyttäjät (nimi, sukunimi, ikä) VALUE ("Sara") , "Lopes", "65")"); add_new_line($link, "INSERT INTO käyttäjät (nimi, sukunimi, ikä) VALUE ("Serg", "Pupin", "29")"); add_new_line($link, " INSERT INTO käyttäjät (nimi, sukunimi, ikä) VALUE ("Serg", "Borman", "43")"); add_new_line($link, "INSERT INTO käyttäjät (nimi, sukunimi, ikä) VALUE ("Max", " Lopes", "21")"); // näytä taulukon sisältö selaimessa $result = mysqli_query($link, "SELECT * FROM users"); if (!$result) echo "Tapahtui virhe: " . mysqli_error(); else echo "Data vastaanotettu.
"; while ($rivi = mysqli_fetch_assoc($result)) ( echo "Etunimi: $rivi. Sukunimi: $rivi. Ikä: $rivi.
"; ) mysqli_close($link);

Meillä on siis uusi, monimutkaisempi taulukko ainutlaatuisilla tietueilla. Katsotaan nyt kuinka monta nimeä meillä on tietokannassa.

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Virhe"); mysqli_select_db("testeri"); $tulos = mysqli_query($linkki, "VALITSE ERILAINEN nimi käyttäjiltä"); echo "Nimet yhteensä: " . mysqli_num_rows($tulos)."
"; echo "Lista nimistä:
"; while ($nimi = mysqli_fetch_row($result)) ( echo "$nimi
"; ) mysqli_close($link);

SQL-kysely "SELECT DISTINCT name FROM users" palautti tuloksen, jossa oli kaikki taulukossamme olevat yksilölliset nimet. Jokainen yksilöivä nimi kyselytuloksen uudella rivillä.

Tuloksen lajittelu - TILAA

Lisäämällä ORDER BY -komennon SQL-kyselyyn lajittelemme kyselyn tuloksen nousevaan järjestykseen (numerot ja kirjaimet aakkosjärjestyksessä). Tässä on esimerkki, jossa voit verrata tavallista kyselyä ja iän mukaan lajiteltua kyselyä (ikäkenttä).



"; ) echo "Lajittele iän mukaan:
"; $result = mysqli_query($link, "SELECT * FROM käyttäjiltä ORDER BY"); while ($rivi = mysqli_fetch_row($result)) ( echo "Etunimi: $rivi. Sukunimi: $rivi. Ikä: $ linja.
"; ) mysqli_close($link);

Voit korvata ORDER BY -komennon ikäkentän nimikentällä ja nähdä tuloksen.

Voit lajitella kyselyn tuloksen käänteiseen järjestykseen käyttämällä ORDER BY iän DESC -komentoa.

Vastaava kunto - MISSÄ

Lisäämällä WHERE-komennon SQL-kyselyyn, teemme kyselyn vain ehdon täyttäviltä tietueilta. Tehdään esimerkiksi pyyntö alle 30-vuotiaille.

Tätä varten käytämme SQL-kyselyä "SELECT * FROM käyttäjät WHERE ikä

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Virhe"); mysqli_select_db("testeri"); echo "Alle 30-vuotiaat:
"; $result = mysqli_query($link, "SELECT * FROM käyttäjät WHERE ikä<30"); while ($line = mysqli_fetch_row($result)) { echo "Имя: $line. Фамилия: $line. Возраст: $line.
"; ) mysqli_close($link);

Voimme myös lajitella tulokset välittömästi nousevaan ikäjärjestykseen:
" SELECT * FROM käyttäjiltä WHERE ikä<30 ORDER BY age ".

Jos teemme kyselyn " SELECT nimi FROM käyttäjät WHERE ikä<30 ORDER BY age ", то в результате нам вернут только значения поля "name", но они также будут отсортированы по age.

Voimme kysellä kahden kentän arvoja: " SELECT nimi, ikä FROM käyttäjät WHERE ikä

Nyt pyydetään kaikkia käyttäjiä nimellä "Max".

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Virhe"); mysqli_select_db("testeri"); echo "Kaikki Maxit:
"; $tulos = mysqli_query($link, "SELECT * FROM users WHERE name="Max""); while ($rivi = mysqli_fetch_row($result)) ( echo "Etunimi: $rivi. Sukunimi: $rivi. Ikä: $line.
"; ) mysqli_close($link);

Ja toinen esimerkki kyselystä - se valitsee vain nimet käyttäjätaulukosta, kaikki paitsi Max.

SELECT nimi FROM käyttäjiltä WHERE nimi!="Max"

Siinä kaikki WHERE-kyselylle.

Rajoitettu pääsy - LIMIT

Lisäämällä LIMIT-komennon SQL-kyselyyn rajoitamme tuloksen kokoa.

Kolme ensimmäistä merkintää palauttava kysely on: " SELECT * FROM users LIMIT 3 ". Katsotaan kuinka se toimii:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Virhe"); mysqli_select_db("testeri"); echo "Taulukon sisältö:
"; $tulos = mysqli_query($link, "SELECT * FROM käyttäjiltä"); while ($rivi = mysqli_fetch_row($result)) ( echo "Etunimi: $rivi. Sukunimi: $rivi. Ikä: $rivi.
"; ) kaiku"

Kolme ensimmäistä merkintää:
"; $tulos = mysqli_query($link, "SELECT * FROM käyttäjiltä RAJA 3"); while ($rivi = mysqli_fetch_row($result)) ( echo "Etunimi: $rivi. Sukunimi: $rivi. Ikä: $rivi .
"; ) kaiku"

Kolme toista merkintää:
"; $result = mysqli_query($link, "SELECT * FROM käyttäjiltä RAJA 3, 3"); while ($rivi = mysqli_fetch_row($result)) ( echo "Etunimi: $rivi. Sukunimi: $rivi. Ikä: $linja .
"; ) mysqli_close($link);

Myös tässä käytimme kyselyä: "VALITSE * FROM käyttäjiltä LIMIT 3, 3". Toinen kolmoinen osoittaa siirtymän kyselyn tuloksessa.

Match kuvio - LIKE

SQL-kieli tukee yksinkertaisia ​​malleja. Käytä tätä varten LIKE-komentoa ja määritä kuvio käyttämällä %-symbolia.

Tässä on esimerkkikysely, joka palauttaa kaikki tietueet, joiden nimet alkavat S-kirjaimella.

SELECT * FROM käyttäjiltä WHERE nimi LIKE "S%"

Testaan ​​pyyntöä:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Virhe"); mysqli_select_db("testeri"); echo "Taulukon sisältö:
"; $tulos = mysqli_query($link, "SELECT * FROM käyttäjiltä"); while ($rivi = mysqli_fetch_row($result)) ( echo "Etunimi: $rivi. Sukunimi: $rivi. Ikä: $rivi.
"; ) kaiku"

S:llä alkavat nimet:
"; $tulos = mysqli_query($link, "SELECT * FROM käyttäjiltä WHERE nimi LIKE "S%""); while ($rivi = mysqli_fetch_row($result)) ( echo "Etunimi: $rivi. Sukunimi: $line Ikä: $line.
"; ) mysqli_close($link);

Tässä on esimerkkikysely, joka palauttaa kaikki tietueet, joiden sukunimet päättyvät kirjaimeen s.

SELECT * FROM käyttäjiltä WHERE nimi LIKE "%s"

Ehto täytetty - IN

Tämä IN-komentoa käyttävä kysely palauttaa vain ne rivit, jotka vastaavat tiukasti ehtoa.

Olemme esimerkiksi kiinnostuneita 21-, 26- ja 33-vuotiaista.

SELECT * FROM käyttäjiltä WHERE ikä IN (21,26,33)

Testaan ​​pyyntöä:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Virhe"); mysqli_select_db("testeri"); echo "Taulukon sisältö:
"; $tulos = mysqli_query($link, "SELECT * FROM käyttäjiltä"); while ($rivi = mysqli_fetch_row($result)) ( echo "Etunimi: $rivi. Sukunimi: $rivi. Ikä: $rivi.
"; ) kaiku"

Vaaditun ikäiset (21, 26, 33):
"; $result = mysqli_query($link, "SELECT * FROM users WHERE age IN (21, 26, 33)"); while ($line = mysqli_fetch_row($result)) ( echo "Etunimi: $rivi. Sukunimi : $ rivi.Ikä: $linja.
"; ) mysqli_close($link);

Suurin ja pienin arvo sarakkeessa

Valitsee käyttäjätaulukon enimmäisiän arvon.

VALITSE max(ikä) käyttäjiltä

Seuraava kysely valitsee tiedot käyttäjätaulukosta nimi- ja ikäkentillä, joissa ikä saa vähimmäisarvon.

VALITSE nimi, min(ikä) käyttäjiltä

Tietuetta päivitetään - PÄIVITYS

Asetetaan Max Lopesin ikä 15 vuoteen. Tämä tehdään MySQL-kyselyllä:

PÄIVITYS käyttäjät SET age="15" WHERE name="Max" AND sukunimi="Lopes"

Huomaa uusi AND-komento (ja tarkoittaa "ja" englanniksi) kyselyssä. Jos emme määritä sukunimeä, 15 vuoden ikä asetetaan kaikille taulukon Maxille.

Voit päivittää kaksi tai useampia kenttää yhdellä rivillä yhdellä kyselyllä. Tämä tehdään seuraavasti:

UPDATE käyttäjät SET ikä = "18", sukunimi = "keitin" WHERE id = "3"

Taulukossamme ei ole id-kenttää, joten tämä kysely ei toimi siinä. Mutta opimme varmasti tämän kentän, joka sisältää yksilöllisiä rivinumeroita.

Poista merkintä - POISTA

MySQL-tietokantakysely tietueen poistamiseksi:

POISTA käyttäjiltä WHERE id = "10"

Jälleen, taulukossamme ei ole id-kenttää. Mutta voimme poistaa siitä kaikki alle 18-vuotiaat.

POISTA käyttäjiltä WHERE-ikäisiä< "18"

Poista taulukko - PUDOTA PÖYTÄ

MySQL-tietokantakysely, joka poistaa koko käyttäjätaulukon:

DROP TABLE käyttäjät

Poista sarake - ALTER TABLE ... DROP ...

Joskus saatat joutua poistamaan sarakkeen taulukosta, esimerkiksi poistamalla ikäsarake käyttäjiltä:

ALTER TABLE käyttäjät DROP ikä

Tämä MySQL-kysely poisti sarakkeen pysyvästi ja pysyvästi.

Lisää sarake - ALTER TABLE ... LISÄÄ ...

Joskus saatat joutua lisäämään sarakkeen olemassa olevaan taulukkoon. Lisätään esimerkiksi ikäsarake takaisin käyttäjätaulukkoon:

ALTER TABLE -käyttäjät LISÄÄ ikä TINYINT UNSIIGNED

Nimetään saraketta uudelleen - ALTER TABLE ... CHANGE ...

Joskus saatat joutua nimeämään sarakkeen uudelleen, esimerkiksi nimeämään ikäsarakkeen uudelleen vozrastiksi. Teemme sen näin:

ALTER TABLE -käyttäjät VAIHDA ikää ikää TINYINT EI KÄYTTÖÄ

Tämä MySQL-kysely nimesi sarakkeen iän uudelleen vozrastiksi tietotyypillä TINYINT UNSIIGNED.

Taulukon nimeäminen uudelleen - NIMEÄ TABLE UUDELLEEN ... TO ...

Joskus saatat joutua nimeämään taulukon uudelleen:

NIMEÄ UUDELLEEN TABLE-käyttäjät kansoiksi

Tietokannan poistaminen - DROP DATABASE

Tämä kysely voi poistaa testeri-nimisen tietokannan:

DROP DATABASE -testeri

Tietokannan luominen - CREATE DATABASE

Tämä kysely luo tietokannan nimeltä testaaja:

LUO TIETOKAnnan testaaja

Tämä pyyntö toimii minulle Denverissä, mutta isännöinnissä se ei välttämättä toimi, jos tietokannan käyttäjällä ei ole oikeuksia poistaa.

Tulokset

Joten tässä osassa tutustuimme MySQL-kyselyihin. Monet tutkimistamme kyselyistä eivät usein ole hyödyllisiä meille työprosessissa, mutta meidän on tiedettävä ne, koska niistä on varmasti hyötyä skriptien kehittämisprosessissa.

Jotkut pyynnöt tehdään yleensä vain phpMyAdminilta (esim. tietokantojen luominen ja poistaminen).

Kun työskentelet verkkosivustoilla, sinun on yleensä lisättävä tietue taulukkoon, muokattava tietueita tai poistettava tietue taulukosta.

Seuraava askel on oppia MySQL-tietotyypeistä.