php kasutamine...

Ühenduse loomine erinevatel viisidel:

1) vanamoodne viis MySQL-iga ühenduse loomiseks:

$conn=mysql_connect($db_hostinimi, $db_kasutajanimi, $db_parool) või die ("Serveriga pole ühendust");
mysql_select_db($db_database,$conn) või die ("Ei, andmebaasiga ei olnud võimalik ühendust luua");

Allpool olevate muutujate selgitused.

Kasutatakse järgmisi funktsioone:

  • mysql_connect()- serveriga ühenduse loomiseks;
  • mysql_select_db()- andmebaasiga ühenduse loomiseks;

Samal ajal kontrollime pidevalt vigu nii: või sureme (“Viga on selline ja selline”); - tõlgituna või surema sellise ja sellise veaga - et kohe leida, kus viga on.

config.php

// muutujad andmebaasiga ühenduse loomiseks
$host = "localhost"; /host
$kasutajanimi = "juur"; // parool andmebaasiga ühenduse loomiseks
$parool = ""; // parool andmebaasiga ühenduse loomiseks - kohalikus arvutis võib see olla tühi.
$andmebaasi_nimi = "minu-dolgi"; // andmebaasi nimi

// vana viis andmebaasiga ühenduse loomiseks
mysql_connect($host, $kasutajanimi, $parool) or die("Ei saa ühendust luua ühendust");

// vali andmebaas. Kui on viga, väljastage
mysql_select_db($andmebaasi_nimi) or die(mysql_error());

index.php

nõuda_once "config.php";


$result = mysql_query("SELECT nimi, raha FROM Dolgist ORDER BY Money DESC LIMIT 5") või die(mysql_error());



";


while ($rida = mysql_fetch_assoc($result)) (
";
}


mysql_free_result($tulemus);

// Sulgege ühendus
mysql_close();

2) Progressiivsem protseduuristiil - andmebaasiga ühenduse loomine mysqli abil:

See meetod:

  1. mugav;
  2. kuni 40 korda kiirem;
  3. suurenenud turvalisus;
  4. on uusi funktsioone ja funktsioone;

Näide PHP-s andmebaasiga ühenduse loomisest tabelist tehtud valikuga

config.php

// ühendused andmebaasiga
$link = mysqli_connect("localhost", "kasutajanimi", "parool", "nimeandmebaas"); // siia sisestame otse teie andmed: kasutajanimi, parool ja andmebaasi nimi, esimene väli on tavaliselt localhost

// väljundi ühenduse viga
if (!$link) (
echo "Viga andmebaasiga ühenduse loomisel. Veakood: " . mysqli_connect_error();
väljumine;
}

Pange tähele - igal pool kasutatakse mysqli, mitte mysqli!!!

index.php

nõuda_once "config.php";

// Täitke taotlus. Kui ilmneb tõrge, kuvame selle
if ($tulemus = mysqli_query($link,"VALI nimi, raha võlast ORDER BY Money DESC LIMIT 5") (

Kaja "Kellele ma olen kahanevas järjekorras võlgu:

";

// Päringu tulemuste toomine
while ($rida = mysqli_fetch_assoc($tulemus)) (
echo $row["Nimi"] . "võlaga". $row["Raha"] . "rubla.
";
}

// kasutatud mälu vabastamine
mysqli_free_result($tulemus);

// Sulgege ühendus
mysqli_close($link);
}

Nagu näete, on mõned punktid muutunud (kaldkirjas).

3) Objektorienteeritud meetod MySQL-i andmebaasiga ühenduse loomiseks – kasutades meetodeid ja klasse:

Miinused: keerulisem ja vähem vigadele vastuvõtlik.

Plussid: lühidus ja mugavus kogenud programmeerijatele.

$conn = new mysqli($db_hostinimi, $db_kasutajanimi, $db_parool, $db_andmebaas);
if($conn->connect_errno)(
die($ ühendus->ühendamisviga);
) else (kaja "Ühendus andmebaasiga loodi edukalt";)

siin on põhimõtteliselt kõik intuitiivne:

  • $db_hostinimi on peremees(enamasti localhost),
  • $db_andmebaas – db nimi;
  • $db_username ja $db_password – vastavalt kasutajanimi ja parool!

Näide andmebaasiga ühenduse loomisest php OOP stiilis tabelist proovivõtuga

config.php

// ühendused andmebaasiga
$mysqli = new mysqli("localhost", "kasutajanimi", "parool", "nimeandmebaas"); // siia sisestame otse teie andmed: kasutajanimi, parool ja andmebaasi nimi, esimene väli on tavaliselt localhost

// väljundi ühenduse viga
if ($mysqli->connect_error) (
die ("DB ühenduse viga: (" . $mysqli->connect_errno . ") " . mysqli_connect_error) ;
}

Pange tähele - igal pool kasutatakse mysqli, mitte mysqli!!! ja erinevalt eelmisest meetodist ilmuvad nooled “->”, mis näitavad, et see on OOP-stiil.

index.php

nõuda_once "config.php";

// Täitke taotlus. Kui ilmneb tõrge, kuvame selle
if ($tulemus = $ mysqli-> päring("VALI nimi, Money FROM võla ORDER BY Money DESC LIMIT 5") (

Kaja "Kellele ma olen kahanevas järjekorras võlgu:

";

// Päringu tulemuste toomine
while ($rida = $tulemus-> too_assoc()) {
echo $row["Nimi"] . "võlaga". $row["Raha"] . "rubla.
";
}

// kasutatud mälu vabastamine
$tulemus->sulge();

// Sulgege ühendus
$mysqli-> sule();
}

Sinu ülesanne on leida erinevused.

4) Andmebaasiga suhtlemine kaitstud päritolunimetusega:

MySQL-i andmebaasiga ühenduse loomisel kasutatakse ettevalmistatud avaldisi (valmistamismeetodil) ja selle tulemusena suurem turvalisus ja suurendab oluliselt jõudlust.

konfiguratsioonifail eelmisest meetodist! - sama

index.php

// KPN stiil suhtlemiseks MySQL-iga
if ($stmt = $mysqli->prepare("SELECT nimi, Voney FROM Dolgist ORDER BY Money< ? LIMIT 5")) {

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

//käivita täitmist
$stmt->käivita();

// Muutujate deklareerimine ettevalmistatud väärtuste jaoks
$stmt->bind_result($col1, $col2);

Kaja "Kellele ma olen kahanevas järjekorras võlgu:

";

// Päringu tulemuste toomine
while ($stmt->fetch()) (
kaja $col1 . "võlaga". $col2 . "rubla.
";
}

// kasutatud mälu vabastamine
$stmt->close();

// Sulgege ühendus
$mysqli->sulge();

Nagu näete, on see palju keerulisem ja peate õppima kaitstud päritolunimetust - see on eraldi teema.

Mäletan neid aegu, mil ma veel ei teadnud, mis see on mysql ja otsis sageli selliseid artikleid Internetist. Kuid millegipärast leiti neid harva. Nüüd otsustasin selle postitada, et seal oleks selle kohta kasulikke artikleid mysql Ja php on veel üks. Püüan kirjutada kõik kättesaadavas keeles.

alustades mysql-i ja php-ga

Niisiis, esmalt vajame töötamiseks kohalikku serverit php skriptid ja ühenduda andmebaasiga (edaspidi nimetan seda DB-ks, mis tähendab "andmebaas"). Kui teil pole veel kohalikku serverit, peaksite esmalt lugema jaotist Installimine ja konfigureerimine kohalik host ja seejärel alustage andmebaasi uurimist mysql ja selle DBMS (andmebaasihaldustööriist).

Kui teil on see server juba olemas, tehke seda. Esiteks tahan teile tutvustada DBMS-i PhpMyAdmin, see võimaldab hallata (lisada, kustutada, muuta) kirjeid andmebaasis.

See on põhileht DBMS PhpMyAdmin. Siit saate luua oma andmebaasi ja salvestada sellesse vajalikud kirjed. See on veebisaitide loomisel väga mugav, kuna teave on struktureeritud ja saate andmebaasist iga kirje väga kiiresti kätte.

Nagu juba mainitud, artikli esimene osa, sissejuhatus mysql Ja phpmyadmin. Arvan, et nüüd saate aru, mis on mysql ja saame hakata uurima phpmyadmini funktsionaalsust. Alustamiseks peame looma andmebaasi ise. Tal on oma nimi, mille järgi me teda siis otsime.

Siin on andmebaasi üldine struktuur:

Andmebaasi loomiseks sisestage sisestusväljale rea "Loo uus andmebaas" alla (PhpMyAdmini avalehel) tulevase andmebaasi suvaline nimi (mitte kirillitsas!). Loon andmebaasi nimega "baza". Nüüd, järgides andmebaasi struktuuri diagrammi, peame tegema tabeli. Selleks avaneb pärast andmebaasi loomist järgmine aken:

Siin loon tabeli nimega kasutajad ja selles 3 välja. Järgmisena palub phpmyadmin meil määrata iga välja struktuuri:

Siin veerus “Välja” peate märkima nime, väljale “Tüüp” näitame sinna salvestatavate andmete tüübi (INT on arv, VARCHAR on string või väike (!) tekst). "Täpsemalt" märgime väljale nimega "id" parameetri "auto_increament", mis tähendab, et see suureneb iga kord, kui sisestate mis tahes andmeid, ja määrame selle parameetriks "Primary Key" (pane ring), see tähendab, et esimese veeru järgi saame välja üheselt identifitseerida.

"Välja unikaalne identifitseerimine" tähendab, et isegi kui ees- ja perekonnanimi on samad, on veerul "id" erinevad väärtused (kuna seda suurendatakse automaatselt iga kord ühe võrra).

Nüüd klõpsake nuppu "Salvesta". Seega lõime kasutajate andmebaasi kasutajate tabeli, kuhu saame salvestada ees- ja perekonnanime (ID-d pole vaja sisestada, mysql teeb kõik meie eest ära). Tegime tabeli kirjete salvestamiseks. Kuidas neid sinna sisestada? Loe allpool 😉

Valige menüüst "Insert" ja kirjutage nõutavad väärtused nõutavatele väljadele. Nüüd, kuidas kustutada või muuta väärtusi mysql andmebaasis PhpMyAdmin DBMS-iga... Kustutamiseks minge lihtsalt menüüsse "Sirvi" ja klõpsake kirje kõrval olevat punast risti:

Ja muutmiseks klõpsake pliiatsil ja asendage nõutud väljad. Noh, see on õppetunni lõpp. Nüüd saate hallata mysql-i andmebaasi PhpMyAdmini abil. Järgmises õppetükis õpetan teile, kuidas andmeid andmebaasis salvestada, hankida, kustutada ja uuendada kasutades php. See on väga mugav ja praktiline.

Töötamine mysql andmebaasiga php-st

Niisiis, kõigepealt peate õppima, kuidas luua ühendust juba loodud andmebaasiga. Selleks kasutage järgmist koodi:

Ülaltoodud koodis ühendasin sisselogimise abil kohaliku hosti serveriga juur mis ei nõua parooli (seega me seda ei täpsusta). Pärast andmebaasiga ühenduse loomist saame läbi viia kõik toimingud, mida tegime phpmyadmini DBMS-is. Ehk siis mitmesuguse info sisestamine, kustutamine, muutmine ja otsimine. Nüüd punkt-punktilt:

Kirjete sisestamine SQL-i andmebaasi php-s

$query="INSERT INTO `tabel` (`määratle väli`,`määratle väli`) VÄÄRTUSED ("ükskõik milline väärtus", "ükskõik milline väärtus""); $tulemus=mysql_query($päring); if($result==true) (kaja "Õnnestus!"; ) else ( echo "Viga!
".mysql_error(); )

See tähendab, et sisestamise teostab funktsioon INSERT. Kui kõik läks hästi, tagastab mysql tulemuse tõene või muidu - false.

Saate määrata nii palju välju, kui soovite, peaasi, et need kõik andmebaasis olemas oleksid. See tähendab, et näiteks on tabel, milles on väljad “nimi”, “perekonnanimi” ja “linn”. Sellesse väärtuste sisestamiseks kasutame järgmist koodi:

$query="INSERT INTO `users` (`nimi`,`perekonnanimi`,`linn`) VÄÄRTUSED ("Ruslan","Huzin","Kokshetau""); $tulemus=mysql_query($päring); if($result==true) (kaja "Õnnestus!"; ) else ( echo "Viga!
".mysql_error(); )

Kirjete kustutamine SQL-i andmebaasist php-s

Kustutamine toimub funktsiooni DELETE abil. Selle kood oleks umbes selline:

$query="DELETE FROM `users` WHERE `name`="Ruslan" "; $tulemus=mysql_query($päring); if($result==true) (kaja "Õnnestus!"; ) else ( echo "Viga!
".mysql_error(); )

See tähendab, et kustutame kasutajate tabelist kõik read (või ühe), kus nime veerg võrdub Ruslani väärtusega.

Väärtuste muutmine MySQL-i andmebaasis php-s

Samuti saame teha muudatusi tabeli olemasolevates kirjetes. Näiteks peame asendama nime veeru väärtuse reas, kus perekonnanime veerus on väärtus Huzin. Selleks käivitame järgmise koodi:

$query="UPDATE `kasutajad` SET `name`="minunimi" WHERE `perekonnanimi`="Huzin" "; $tulemus=mysql_query($päring); if($result==true) (kaja "Õnnestus!"; ) else ( echo "Viga!
".mysql_error(); )

Väärtuste hankimine andmebaasist

Nüüd tuleb lõbus osa. Kuna me kirjutasime midagi üles, peaksime selle tagasi saama, eks? Näiteks peame saama kogu rea kasutajate tabelist, kus nime veerg võrdub Ruslaniga. Selleks vajame veidi teistsugust koodi kui esimestes näidetes. Siin see on:

$query="VALI * FROM WHERE `name`="Ruslan" "; $tulemus=mysql_query($päring); if($result==true) (kaja "Õnnestus!"; ) else ( echo "Viga!
".mysql_error(); ) $data=mysql_fetch_array($result); /* Nüüd salvestab muutuja andmed tabelist */

Siin vajasime veel ühte funktsiooni, et kirjutada valitud andmed php-s muutujasse (massiivi). Valitud reale juurde pääsemiseks kirjutame nii:

$data["veeru nimi"]

see tähendab, et valitud realt perekonnanime saamiseks (kus nimi oli Ruslan), peame väljundina kirjutama:

kaja $andmed["perekonnanimi"];

Ja tabelist valides kirjutasid nad SELECT * , see tärn tähendab, et peate valima realt kõik veerud. Kui meil on vaja näiteks valida ainult perekonnanimi, kirjutame SELECT `perekonnanimi`. Ja tabelist mitme rea korraga valimiseks on nende kuvamiseks vaja ka silmust. Seda juhul, kui näiteks Ruslani veeruga rida on mitu. Siin on kood:

$query="VALI * FROM WHERE `name`="Ruslan" "; $tulemus=mysql_query($päring); while($data=mysql_fetch_array($result)) ( echo $data["nimi"]."
".$data["perekonnanimi"]."


"; }

Nüüd kuvatakse ekraanil kõik read, mille nime veerg on võrdne väärtusega Ruslan.

Nüüd olete tutvunud põhiliste juhtimisfunktsioonidega mysql andmebaas otse php skript.

MySQL on relatsioonilise andmebaasi tüüp. MySQL on server, millega saavad ühenduse luua erinevad kasutajad.

Kas Interneti-ühenduse loomisel sisestate oma kasutajanime ja parooli ning serveri nime, millega ühenduse loote? MySQL-iga töötamisel kasutatakse sama süsteemi.

Veel üks asi: mis on relatsiooniline andmebaas? Relatsioonilised vahendid tabelite põhjal. Microsofti kuulus tabeliredaktor Excel on tegelikult relatsiooniandmebaasi redaktor.

Ühenduse loomine MySQL serveriga

PHP-s MySQL-serveriga ühenduse loomiseks kasutage funktsiooni mysqli_connect(). See funktsioon kasutab kolme argumenti: serveri nimi, kasutajanimi ja parool.

Funktsioon mysqli_connect() tagastab ühenduse identifikaatori, see salvestatakse muutujas ja hiljem kasutatakse seda andmebaasidega töötamiseks.

MySQL serveri ühenduse kood:

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

Antud juhul töötan ma Denwere'i kohaliku masinaga, nii et hostinimi on localhost, kasutajanimi on root ja parooli pole.

Ühendus tuleb sulgeda ka pärast MySQL-iga töötamise lõpetamist. Ühenduse sulgemiseks kasutatakse funktsiooni mysqli_close(). Laiendame näidet:

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

Siin kontrollisime ühenduse identifikaatori tõesust, kui meie ühendusega on midagi valesti, siis programm ei käivitu, funktsioon die() peatab täitmise ja kuvab brauseris veateate.

Ühenduse vead

Ühenduse kontrollimiseks kasutatakse järgmisi funktsioone:

  • mysqli_connect_errno() – tagastab viimase ühenduskatse veakoodi. Kui vigu pole, tagastab nulli.
  • mysqli_connect_error() – tagastab MySQL serverile viimase ühenduse vea kirjelduse.
define("HOST", "localhost"); define("DB_USER", "root"); define("DB_PASSWORD", ""); define("DB", "testija"); $link = mysqli_connect(HOST, DB_USER, DB_PASSWORD, DB); /* kontrolli ühendust */ if (mysqli_connect_errno()) ( printf("Ei saa ühendust luua: %s\n", mysqli_connect_error()); exit(); ) else ( printf("Ühendamine õnnestus: %s\n" , mysqli_get_host_info($link)); )

Funktsioon mysqli_get_host_info() tagastab stringi, mis sisaldab kasutatava ühenduse tüüpi.

Pange tähele ka seda, et define käsu abil salvestasin kõik ühenduse parameetrid konstantidena. Kui kirjutate suuri projekte ja MySQL serveriga ühendub palju faile, on mugav ühenduse parameetrid salvestada eraldi faili ja lisada see funktsiooni include or request abil.

Andmebaasi valimine

MySQL-serveril võib olla mitu andmebaasi. Kõigepealt peame valima aluse, millega peame töötama. PHP-s on selleks funktsioonis mysqli_connect() veel üks parameeter – andmebaasi nimi.

Lõin selle oma arvutis phpMyAdmini kaudu nimetestijaga. Ühendame sellega:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Viga"); mysql_close($link);

Seega oleme valinud andmebaasi, millega töötada. Kuid nagu me teame, koosneb relatsiooniline andmebaas tabelitest ja meie andmebaasis pole veel tabeleid. Andmebaas luuakse tühjana, ilma tabeliteta. Tabelid tuleb sellele eraldi lisada. Nüüd lisame sellele tabeli PHP abil.

Looge tabel

MySQL-i andmebaaside nimes tähistab SQL-osa struktureeritud päringukeelt, mis tõlgitakse struktureeritud päringukeelena. Kirjutame päringud SQL-is ja saadame need PHP programmist MySQL serverisse.

Tabeli loomiseks peame lihtsalt välja andma käsu CREATE TABLE. Teeme tabeli nimega kasutajad, mille veergudesse salvestatakse kasutajate sisselogimised (sisselogimise veerg) ja paroolid (veerg paroolid).

$query = "LOO TABLE kasutajad(login VARCHAR(20), parool VARCHAR(20))";

Selles koodis oleme määranud muutujale $query tekstistringi, mis esindab SQL-päringut. Loome tabeli nimega kasutajad, mis sisaldab kahte veergu sisselogimine ja parool, mõlemad andmetüübiga VARCHAR(20). Andmetüüpidest räägime hiljem, praegu märgin lihtsalt ära, et VARCHAR(20) on string, mille maksimaalne pikkus on 20 tähemärki.

Päringu MySQL-i serverisse saatmiseks kasutame PHP funktsiooni mysqli_query(). See funktsioon tagastab positiivse arvu, kui toiming oli edukas, ja vale, kui ilmnes tõrge (päringu süntaks on vale või programmil pole luba päringu täitmiseks).

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Viga"); $query = "LOO TABLE kasutajad(login VARCHAR(20), parool VARCHAR(20))"; mysqli_query($päring); mysqli_close($link);

SQL-päringut ei pea muutujasse kirjutama, selle saab kirjutada otse funktsiooni mysql_query() argumendina. See muudab koodi lihtsalt loetavamaks.

Sellel skriptil on üks puudus – see ei väljasta brauserisse midagi. Lisame sõnumi:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Viga"); $query = "LOO TABLE kasutajad(login VARCHAR(20), parool VARCHAR(20))"; if (mysqli_query($query)) echo "Tabel on loodud."; else echo "Tabelit ei loodud."; mysqli_close($link);

Kui käivitame selle skripti uuesti, näeme brauseris teadet: "Tabelit pole loodud." Fakt on see, et tabel loodi esimese käivitamise ajal ja sama nimega tabelit pole võimalik uuesti luua. Oleme silmitsi tõrkeolukorraga, seega on aeg rääkida vigade käsitlemisest MySQL-iga töötamisel.

Viga töötlemisel

Programmi silumisel võime vajada täpset teavet vea kohta. Kui MySQL-is ilmneb tõrge, määrab andmebaasiserver vea numbri ja rea ​​selle kirjeldusega. PHP-l on nendele andmetele juurdepääsuks spetsiaalsed funktsioonid.

  • mysqli_errno() – tagastab veanumbri.
  • mysqli_error() – tagastab viga kirjeldava stringi.

Nüüd lisame oma skriptile funktsiooni mysql_error().

$link = mysql_connect("localhost", "root", "", "tester"); if (!$link) die("Viga"); $query = "LOO TABLE kasutajad(login VARCHAR(20), parool VARCHAR(20))"; if (mysqli_query($query)) echo "Tabel on loodud."; else echo "Tabelit ei loodud: ".mysqli_error(); mysqli_close($link);

Nüüd tagastab meie skript brauserisse rea: "Tabel pole loodud: tabel "kasutajad" on juba olemas."

Tabeli kustutamine

Nüüd on meil laud, mida me ei vaja. On aeg õppida, kuidas tabeleid andmebaasist eemaldada.

Tabeli tühistamiseks kasutage käsku DROP TABLE, millele järgneb tabeli nimi.

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Viga"); $query = "DOP TABLE kasutajad"; if (!mysqli_query($query)) echo "Viga tabeli kustutamisel: ".mysqli_error(); else echo "Tabel kustutatud."; mysqli_close($link);

Tulemused

Niisiis, oleme omandanud MySQL-i põhitõed. Mida me tegema õppisime:

  • Ühendage MySQL-i andmebaasiga funktsiooni mysqli_connect() abil.
  • Sulgege ühendus MySQL-serveriga funktsiooni mysqli_close() abil.
  • Saatke MySQL-i serverisse SQL-päringud funktsiooni mysqli_query() abil.
  • Õppisime SQL-päringut tabeli loomiseks: loo tabel.
  • Õppisime selgeks SQL-päringu tabeli kustutamiseks: drop table.
  • Õppisime, kuidas vigu käsitleda funktsioonide mysqli_errno() ja mysqli_error() abil.

Seejärel vaatame lähemalt MySQL-i andmetüüpe.

Lugege järgmist õppetundi:

TÖÖ PHP TÖÖRIISTADEGA MySQL ANDMEBAASIGA

Loeng. Koostanud Prokhorov V.S.


1. PHP STSENAARIUMIDE ÜHENDAMINE MySQL tabelitega

Vaatame kõige sagedamini kasutatavaid funktsioone, mis võimaldavad töötada MySQL andmebaasiga PHP abil.

Kui PHP ja MySQL suhtlevad, suhtleb programm DBMS-iga funktsioonide komplekti kaudu.

1.1 Ühendus serveriga. Funktsioonmysql_connect

Enne andmebaasiga töötamist peate looma sellega võrguühenduse ja volitama kasutajat. Selleks kasutatakse funktsiooni mysql_connect().

ressurss mysql_connect(]])

See funktsioon loob võrguühenduse MySQL andmebaasiga, mis asub hostis $server (vaikimisi on see localhost, st praegune arvuti) ja tagastab avatud ühenduse ID. Kõik edasised tööd tehakse selle identifikaatoriga. Kõik muud funktsioonid, mis kasutavad seda identifikaatorit (käepidet) argumendina, tuvastavad valitud andmebaasi üheselt. Registreerimisel määra kasutajanimi $kasutajanimi ja parool $password (vaikimisi kasutajanimi, millelt praegune protsess töötab – skriptide silumisel: root ja tühi parool):

$dbpasswd = ""; //Parool

//Kuvab hoiatuse

echo("

");

Muutujad $dblocation, $dbuser ja $dbpasswd salvestavad serveri nime, kasutajanime ja parooli.

1.2 Ühenduse katkestamine serveriga. Funktsioonmysql_close

Ühendus MySQL serveriga suletakse automaatselt, kui skript on lõppenud või kui kutsutakse välja funktsioon mysql_close

bool mysql_close()

See funktsioon sulgeb ühenduse MySQL-serveriga ja tagastab tõene, kui toiming on edukas ja false muul juhul. Funktsioon võtab argumendina funktsiooni mysql_connect tagastatud andmebaasiühenduse käepideme.

$dblocation = "localhost"; //Serveri nimi

$dbuser = "juur"; //Kasutajanimi

$dbpasswd = ""; //Parool

//Ühenda andmebaasiserveriga

//Enne funktsiooni väljakutsumist peatage tõrkeväljund sümboliga @

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

if (!$dbcnx) //Kui deskriptor on 0, siis ühendust ei looda

//Kuvab hoiatuse

echo("

Andmebaasiserver pole praegu saadaval, mistõttu ei saa lehte õigesti kuvada.");

if (mysql_close($dbcnx)) //ühenduse sulgemine

echo("Andmebaasiühendus katkestati");

echo("Meil ei õnnestunud ühendust luua");

1.3 Andmebaasi loomine. CREATE DATABASE funktsioon

Käsk - andmebaasi loomine on saadaval ainult serveri administraatorile ja enamikul hostimissaitidel ei saa seda käivitada:

CREATE DATABASEAndmebaasinimi

Loob uue andmebaasi nimega DatabaseName.

Selle funktsiooniga töötamise näide:

@mysql_query("LOO ANDMEBAAS $dbname");

Soovitatav on SQL-käske sisaldavate ridade eraldajatena kõikjal kasutada apostroofe (“SQL – käsk”). See tagab, et ühtegi $ muutujat kogemata ei interpoleerita (st asendatakse selle väärtusega), ja suurendab skripti turvalisust.

Andmebaasi loomise käsk CREATE DATABASE on saadaval ainult superkasutajale ja enamikul hostimissaitidel on lihtsal kasutajal võimatu seda täita. See on saadaval ainult serveri administraatorile.

Katsete jaoks loome testbaasi andmebaasi, käivitades käsurealt SQL-päringu. Selleks peate sisse logima MySQL-i ja sisestama MySQL-i käsureale:

mysql luua andmebaasi testbase;

Pärast seda peaksite sisestama:

mysql > use testbase;

Andmebaas loodud:


1.4 Andmebaasi valimine. Funktsioonmysql_select_db

Enne esimese päringu MySQL-i serverisse saatmist peame märkima, millise andmebaasiga töötame. Funktsioon mysql_select_db on mõeldud selleks:

bool mysql_select_db(string $andmebaasi_nimi [,ressurss $lingi_identifikaator])

See teavitab PHP-d, et ühenduse $link_identifier tulevased toimingud kasutavad andmebaasi $database_name.

Selle funktsiooni kasutamine on samaväärne SQL-päringus käsu use kutsumisega, st funktsioon mysql_select_db valib edasiseks tööks andmebaasi ja kõik järgnevad SQL-päringud rakendatakse valitud andmebaasile. Funktsioon võtab argumentidena valitud andmebaasi nime andmebaasi_nimi ja ühenduse deskriptori ressursi. Funktsioon tagastab tõese, kui toiming oli edukas, ja false muul juhul:

//Andmebaasi ühenduse kood

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

//Kuvab hoiatuse

echo("

Andmebaas pole hetkel saadaval, mistõttu ei saa lehte õigesti kuvada.");

1.5 Vigade käsitlemine

Kui MySQL-iga töötamisel ilmnevad vead (näiteks päringu sulud ei ole tasakaalus või pole piisavalt parameetreid), siis veateate ja selle numbri saab kätte kahe allpool kirjeldatud funktsiooni abil.

Oluline on neid funktsioone hoolikalt ja kiiresti kasutada, sest vastasel juhul võib skriptide silumine muutuda keerulisemaks.

● Funktsioon:

int mysql_errno()

tagastab viimati teatatud vea numbri. Ühenduse identifikaatori $link_identifier saab ära jätta, kui skripti täitmise ajal loodi ainult üks ühendus.

● Funktsioon:

string mysql_error()

tagastab mitte numbri, vaid stringi, mis sisaldab veateate teksti. Seda on mugav kasutada silumiseks. Tavaliselt kasutatakse mysql_errorit koos konstruktsiooniga or die(), näiteks:

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

or die("Viga andmebaasiga ühenduse loomisel: ".mysql_error());

Operaator @, nagu tavaliselt, takistab standardhoiatust, mis võib tõrke korral ilmneda.

PHP viimastes versioonides ei logita MySQL-i funktsioonide hoiatusi vaikimisi.

1.6 MySQL-iga ühenduse loomise automatiseerimine. Fail (config.php)

Tavaliselt on saidil mitu skripti, mis vajavad juurdepääsu samale andmebaasile.

Soovitatav on eraldada MySQL-iga ühenduse loomise eest vastutav kood eraldi failiks ja seejärel ühendada see vajalike skriptidega, kasutades funktsiooni include.

Andmebaasi ühendamise, valimise ja loomise funktsioonid on mõttekas paigutada samasse faili (config.php), kus on deklareeritud muutujad serverinimega $dblocation, kasutajanimega $dbuser, parooliga $dbpasswd ja andmebaasi nimega $dbname:

config.php loend:

//config.php faili kood, mis sisaldab parameetreid serveriga ühenduse loomiseks ja andmebaasi valimiseks

//väljastab brauserisse ühenduse veateated

$dblocation = "localhost"; //Serveri nimi

$dbname = "sisesta andmebaasi nimi" //Andmebaasi nimi: loomisel või olemas

$dbuser = "juur"; //Andmebaasi kasutajanimi

$dbpasswd = ""; //Parool

//Ühenda andmebaasiserveriga

//Enne funktsiooni väljakutsumist peatage tõrkeväljund sümboliga @

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

if (!$dbcnx) //Kui deskriptor on 0, siis ühendust andmebaasiserveriga ei loodud

//Kuvab hoiatuse

echo("

Andmebaasiserver pole praegu saadaval, mistõttu ei saa lehte õigesti kuvada.

");

//Looge andmebaas $dbname – seda saab teha ainult superkasutaja

//Kui andmebaas on juba olemas, siis tekib mittefataalne viga

@mysql_query("LOO ANDMEBAAS, kui seda pole olemas $dbname');

//Andmebaasi ühendamise kood: teeme ühemõttelise valiku vastloodud andmebaasist või juba olemasolevast andmebaasist

//Enne funktsiooni väljakutsumist peatage tõrkeväljund sümboliga @

if(!@mysql_select_db($dbname, $dbcnx)) //Kui deskriptor on 0, siis ühendust andmebaasiga ei looda

//Kuvab hoiatuse

echo("

Andmebaas pole hetkel saadaval, mistõttu ei saa lehte õigesti kuvada.

");

//Väike abifunktsioon, mis prindib sõnumi

//veateade andmebaasi päringu vea korral

funktsioon puterror($message)

kaja("");


2. ANDMEBAASI PÄRINGUTE TÄITMINE

2.1 Tabeli koostamine. FunktsioonLOO TABEL:

LOO TABEL Tabelinimi (väljanime tüüp, väljanime tüüp)

See käsk loob andmebaasis uue tabeli veergude (väljadega), mis on määratletud nende nimede (FieldName) ja määratud tüüpidega. Pärast tabeli loomist saate sellele lisada kirjeid, mis koosnevad selles käsus loetletud väljadest.

Nimekiri test_11.php. Programm, mis loob andmebaasis uue tabeli:

include "config.php";//Looge ühendus serveriga ja valige andmebaas

mysql_query("LOO TABEL, kui seda pole olemas inimesi

ID INT AUTO_INCREMENT PRIMARY KEY,

or die("MySQL-i viga: ".mysql_error());


See skript loob uue kahe väljaga inimeste tabeli. Esimesel väljal on tüüp INT (täisarv) ja nimi id. Teine on TEKSTI tüüp (tekstistring) ja nime nimi.

Kui tabel on olemas, töötab või die() konstruktsioon.

Valikuline klausel kui ei eksisteeri, kui see on määratud, ütleb MySQL-serverile, et see ei tohiks genereerida veateadet, kui määratud nimega tabel on andmebaasis juba olemas.

Õppisime MySQL-i serveriga ühenduse loomist, töötamiseks kasutatava andmebaasi valimist, PHP-funktsiooni päringute saatmiseks MySQL-serverisse, õppisime kahte lihtsat päringut (tabeli loomine ja kustutamine) ning ühenduse sulgemist.

Nüüd sukeldume sügavamale MySQL-i päringutesse. Nii et alustame!

Tabeli koostamine - CREATE TABLE

Nüüd on meil tühi andmebaas, selles pole ühtegi tabelit. Nii et kõigepealt loome tabeli. Teame juba esimesest osast, kuidas seda teha.

Siin on skriptikood, mis loob meile vajaliku plaadi:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Viga"); $query = "LOO TABLE kasutajad(login VARCHAR(20), parool VARCHAR(20))"; if (mysqli_query($link, $query)) echo "Tabel on loodud."; else echo "Tabelit ei loodud: ".mysqli_error(); mysqli_close($link);

Meie tabelis on ainult kaks välja: sisselogimine ja parool. Praegu me rohkem ei vaja, ärgem tehkem protsessi keerulisemaks.

Niisiis, tabel on loodud.

Tabeli ridade (kirjete) lisamine - INSERT

Tabelisse saab lisada uue rea, kasutades SQL-i sisestamise käsku. Siin on näide:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Viga"); $query = "INSERT INTO kasutajad (sisselogimine, parool) VALUE ("zeus", "pass123")"; if (mysqli_query($link, $query)) echo "Kasutaja lisatud."; else echo "Kasutajat pole lisatud: " . mysqli_error(); mysqli_close($link);

SQL-päring koosneb käsust INSERT INTO, andmebaasi nimedest kasutajad, seejärel sulgudes olevatest väljade nimedest, seejärel sõnast VALUE, millele järgneb sulgudes lisatavad väärtused. Väärtused on toodud jutumärkides.

Taotluse süntaks näeb välja selline:

INSERT INTO tabeli_nimi (veerg1, veerg2) VALUE ("x1", "x2")

Teistes sulgudes olevad tsitaadid on kohustuslikud.

Väärtuste asemel võivad olla muutujad. Siin on näide:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Viga"); $login = "zeus"; $parool = "pass123"; $query = "INSERT INTO kasutajad (login, parool) VALUE ("$sisselogimine", "$parool")"; if (mysqli_query($link, $query)) echo "Kasutaja lisatud."; else echo "Kasutajat pole lisatud: " . mysqli_error(); mysqli_close($link);

Muidugi on sellel näitel vähe mõtet. Algajatele võib olla kasulik kuulda, et nii salvestatakse andmebaasi sisselogimised ja paroolid, mille kasutajad registreerimisel annavad. Need andmed salvestatakse muutujatena ja kirjutatakse pärast kontrollimist andmebaasi.

Mitme rea lisamiseks ühe INSERT-lausega on kiire viis:

SISESTAGE kasutajaid (sisselogimine, parool) VALUE ("bob", "eee333"), ("Rooki", "12345"), ("magy", "olol88e8")

Nagu näete, eraldatakse loetletud andmed lihtsalt komadega.

Niisiis, kasutades käsku INSERT, õppisime, kuidas tabelisse kirjeid lisada. Lase käia.

Vaata tabelit: SELECT käsk

Nüüd on meil kasutajate tabel, millel on read. Eelmist skripti saab käivitada mitu korda ja iga kord lisab see tabelisse rea. Nüüd ei pruugi me teada, mitu rida meil tabelis on. Ja ma tahan teada, mida me sinna kirjutanud oleme.

Tabelist andmete toomiseks kasutage käsku SELECT SQL. Märk * tähendab, et küsime kõiki andmeid, seejärel kirjutame sõna FROM järele selle tabeli nime, kust andmeid tahame saada.

Küsime kasutajate tabelist kõiki andmeid:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Viga"); $query = "SELECT * FROM kasutajad"; $tulemus = mysqli_query($link, $päring); if (!$result) echo "Tekkis viga: " . mysqli_error(); else echo "Andmed vastu võetud"; mysqli_close($link);

Funktsioon mysqli_query() tagastas meile päringutulemuse identifikaatori – paneme selle muutujasse ja töötame sellega hiljem teiste PHP funktsioonide abil.

Taotluses olevate kirjete arv

Teeme kindlaks, mitu rida meie päringus on? Käivitasin tabelisse kirje lisamise skripti, ma ei mäleta mitu korda ja nüüd ma ei tea, mitu rida minu tabelis on.

Päringu tulemuse ridade arvu määramiseks kasutage funktsiooni mysqli_num_rows(). See funktsioon edastab päringutulemuse identifikaatori ja see tagastab kirjete arvu.

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Viga"); $query = "SELECT * FROM kasutajad"; $tulemus = mysqli_query($link, $päring); if (!$result) echo "Tekkis viga: " . mysqli_error(); else echo "Andmed vastu võetud"; $count = mysqli_num_rows($result); echo "Tabeli ridu kokku: $count."; mysqli_close($link);

Kui meil on vaja välja selgitada tabelis olevate kirjete arv, siis ülaltoodud meetod ei ole kõige sobivam. Siin saime teada päringust leitud kirjete arvu, kuid tabelis olevate kirjete arvu otsitakse erinevalt.

Kirjete arv tabelis SELECT COUNT(*)

Tabeli kirjete arvu teadasaamiseks saab kasutada käsku SELECT COUNT(*) FROM tabeli_nimi.

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Viga"); mysqli_select_db("testija"); $query = "SELECT * FROM kasutajad"; $tulemus = mysqli_query($link, $päring); if (!$result) echo "Tekkis viga: " . mysqli_error(); else echo "Andmed vastu võetud."; $count = mysqli_fetch_row($tulemus); echo "Tabeli ridu kokku: $count."; mysqli_close($link);

Pange tähele, et siin kasutasime andmete toomiseks uut PHP funktsiooni mysqli_fetch_row(). See funktsioon tagastab päringutulemuse rea lihtsa massiivi kujul; meie puhul on real üks väli ja selle indeks on 0.

Päringu tulemuse vaatamine tsüklina

Pärast SQL-päringu täitmist käsuga SELECT ja päringutulemuse ID saamist loob PHP tulemuste kirjekomplekti sisemise osuti. See kursor liigub pärast praegusele kirjele juurdepääsu automaatselt järgmisele kirjele. See mehhanism muudab SELECT-päringu tulemuste komplekti sirvimise väga mugavaks.

PHP-l on mitu funktsiooni, mille abil saate saadud päringu iga rea ​​jaoks saada massiivi, mis koosneb selle väljadest. Võtame näiteks funktsiooni mysqli_fetch_row(). See funktsioon edastab päringu identifikaatori ja tagastab massiivi. Seega vaadatakse tsüklis kogu päringutulemust ja kui päringutulemuse lõppu jõutakse, tagastab funktsioon väärtuse false .

Niisiis, me küsime kõiki andmeid kasutajate tabelist (SELECT * FROM kasutajad).


"; while ($row = mysqli_fetch_row($result)) ( echo "Logi sisse: $rida. Parool: $rida.
"; ) mysqli_close($link);

Funktsioon mysqli_fetch_row() tagastab lihtsa massiivi. Igas tsükli iteratsioonis saame tabelist reaga massiivi, mille väljadele pääseme ligi numbrilise indeksi määramisega.

Sama saab teha funktsiooni mysql_fetch_assoc() abil, see tagastab assotsiatiivse massiivi.

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Viga"); mysqli_select_db("testija"); $result = mysqli_query($link, "SELECT * FROM kasutajad"); if (!$result) echo "Tekkis viga: " . mysqli_error(); else echo "Andmed on vastu võetud.
"; while ($row = mysqli_fetch_assoc($result)) ( echo "Logi sisse: $rida. Parool: $rida.
"; ) mysqli_close($link);

Samuti on funktsioonid mysqli_fetch_array() - tagastab mis tahes tüüpi massiivi ja mysqli_fetch_object() - tagastab objekti.

SELECT DISTINCT päring – kordumatud välja väärtused

Loome uue tabeli:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Viga"); mysqli_select_db("testija"); // olemasoleva tabeli kustutamine mysqli_query($link, "DROP TABLE users"); // loo uus tabel $query = "CREATE TABLE users(nimi VARCHAR(20), perekonnanimi VARCHAR(20), vanus TINYINT UNSIIGNEDATA)"; if (mysqli_query($link, $query)) echo "Tabel on loodud.
"; else echo "Tabelit ei loodud: " . mysqli_error(); // funktsioon kirjete lisamiseks tabelisse funktsioon add_new_line($link, $query) ( if (!mysqli_query($link, $query)) echo "Kasutaja ei added : " . mysqli_error(); ) // kirjete lisamine add_new_line($link, "INSERT INTO kasutajad (nimi, perekonnanimi, vanus) VALUE ("Max", "Jayson", "33")"); add_new_line($link , "INSERT INTO kasutajad (nimi, perekonnanimi, vanus) VALUE ("Bob", "Freeman", "26")"); add_new_line($link, "INSERT INTO kasutajad (nimi, perekonnanimi, vanus)) VALUE ("Sara" , "Lopes", "65")"); add_new_line($link, "INSERT INTO kasutajad (nimi, perekonnanimi, vanus)) VALUE ("Serg", "Pupin", "29")"); add_new_line($link, " INSERT INTO kasutajad (nimi, perekonnanimi, vanus) VALUE ("Serg", "Borman", "43")"); add_new_line($link, "INSERT INTO kasutajad (nimi, perekonnanimi, vanus) VALUE ("Max", " Lopes", "21")"); // kuvab tabeli sisu brauseris $result = mysqli_query($link, "SELECT * FROM users"); if (!$result) echo "Tekkis viga: " . mysqli_error(); else echo "Andmed on vastu võetud.
"; while ($row = mysqli_fetch_assoc($result)) ( echo "Eesnimi: $rida. Perekonnanimi: $rida. Vanus: $rida.
"; ) mysqli_close($link);

Niisiis, meil on uus, keerulisem unikaalsete kirjetega tabel. Nüüd vaatame, kui palju nimesid meil andmebaasis on.

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Viga"); mysqli_select_db("testija"); $result = mysqli_query($link, "SELECT DISTINCT name FROM FROM"); kaja "Nimesid kokku: " . mysqli_num_rows($result)."
"; kaja "Nimede loend:
"; while ($nimi = mysqli_fetch_row($result)) ( kaja "$nimi
"; ) mysqli_close($link);

SQL-päring "SELECT DISTINCT name FROM users" andis tulemuse kõigi meie tabelis olevate unikaalsete nimedega. Iga kordumatu nimi päringutulemuse uuel real.

Tulemuse sorteerimine - TELLI

Lisades SQL päringule käsu ORDER BY, sorteerime päringutulemuse kasvavas järjekorras (numbrid ja tähed tähestikulises järjekorras). Siin on näide, milles saate võrrelda tavapäringut ja vanuse järgi sorteeritud päringut (vanuseväli).



"; ) kaja "Sorteeri vanuse järgi:
"; $result = mysqli_query($link, "SELECT * FROM Users ORDER BY BY"); while ($line = mysqli_fetch_row($result)) ( echo "Eesnimi: $rida. Perekonnanimi: $rida. Vanus: $ rida.
"; ) mysqli_close($link);

Käskluses ORDER BY saab asendada vanusevälja nimeväljaga ja näha tulemust.

Päringu tulemuste vastupidises järjestuses sortimiseks kasutage käsku ORDER BY vanuse DESC.

Sobiv seisund – KUS

Lisades SQL-päringule käsu WHERE, esitame päringu ainult nendele kirjetele, mis vastavad tingimusele. Näiteks teeme taotluse alla 30-aastastele inimestele.

Selleks kasutame SQL-päringut "SELECT * FROM kasutajad WHERE vanusest

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Viga"); mysqli_select_db("testija"); echo "Alla 30-aastased:
"; $result = mysqli_query($link, "SELECT * FROM kasutajad WHERE vanusest<30"); while ($line = mysqli_fetch_row($result)) { echo "Имя: $line. Фамилия: $line. Возраст: $line.
"; ) mysqli_close($link);

Samuti saame tulemuse koheselt järjestada kasvavas vanuses:
" SELECT * FROM kasutajad WHERE vanuses<30 ORDER BY age ".

Kui teeme päringu " SELECT nimi FROM kasutajad WHERE vanusest<30 ORDER BY age ", то в результате нам вернут только значения поля "name", но они также будут отсортированы по age.

Saame küsida kahe välja väärtusi: " SELECT nimi, vanus FROM kasutajad WHERE vanus

Nüüd taotleme kõiki kasutajaid nimega "Max".

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Viga"); mysqli_select_db("testija"); echo "Kõik Maxid:
"; $result = mysqli_query($link, "SELECT * FROM users WHERE name="Max""); while ($line = mysqli_fetch_row($result)) ( kaja "Eesnimi: $rida. Perekonnanimi: $rida. Vanus: $line.
"; ) mysqli_close($link);

Ja veel üks näide päringust – see valib kasutajate tabelist ainult nimed, kõik peale Max.

SELECT nimi FROM kasutajatest WHERE nimi!="Max"

See on kõik WHERE-päringu jaoks.

Piiratud kanded – LIMIT

Lisades SQL-päringule käsu LIMIT, piirame tulemuse suurust.

Päring, mis tagastab kolm esimest kirjet, on: " SELECT * FROM users LIMIT 3 ". Vaatame, kuidas see töötab:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Viga"); mysqli_select_db("testija"); echo "Tabeli sisu:
"; $result = mysqli_query($link, "SELECT * FROM users"); while ($rida = mysqli_fetch_row($result)) ( kaja "Eesnimi: $rida. Perekonnanimi: $rida. Vanus: $rida.
"; ) kaja"

Kolm esimest sissekannet:
"; $result = mysqli_query($link, "SELECT * FROM users LIMIT 3"); while ($line = mysqli_fetch_row($result)) ( echo "Eesnimi: $line. Perekonnanimi: $line. Vanus: $line .
"; ) kaja"

Kolm teist sissekannet:
"; $result = mysqli_query($link, "SELECT * FROM users LIMIT 3, 3"); while ($line = mysqli_fetch_row($result)) ( kaja "Eesnimi: $line. Perekonnanimi: $line. Vanus: $rida .
"; ) mysqli_close($link);

Ka siin kasutasime päringut: "SELECT * FROM users LIMIT 3, 3". Teine kolmik näitab päringu tulemuse nihet.

Sobi muster - LIKE

SQL-keel toetab lihtsaid malle. Selleks kasutage käsku LIKE ja määrake muster sümboliga %.

Siin on näidispäring, mis tagastab kõik kirjed, mille nimed algavad tähega S.

SELECT * FROM kasutajad WHERE nimi LIKE "S%"

Testin taotlust:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Viga"); mysqli_select_db("testija"); echo "Tabeli sisu:
"; $result = mysqli_query($link, "SELECT * FROM users"); while ($rida = mysqli_fetch_row($result)) ( kaja "Eesnimi: $rida. Perekonnanimi: $rida. Vanus: $rida.
"; ) kaja"

S-iga algavad nimed:
"; $result = mysqli_query($link, "SELECT * FROM users WHERE name LIKE "S%""); while ($line = mysqli_fetch_row($result)) ( kaja "Eesnimi: $rida. Perekonnanimi: $line Vanus: $line.
"; ) mysqli_close($link);

Siin on näidispäring, mis tagastab kõik kirjed, mille perekonnanimed lõppevad tähega s.

SELECT * FROM kasutajad WHERE nimi LIKE "%s"

Tingimus täidetud - IN

See IN-käsku kasutav päring tagastab ainult need read, mis vastavad täpselt tingimusele.

Näiteks oleme huvitatud inimestest vanuses 21, 26 ja 33 aastat.

SELECT * FROM kasutajatelt WHERE vanus (21,26,33)

Testin taotlust:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Viga"); mysqli_select_db("testija"); echo "Tabeli sisu:
"; $result = mysqli_query($link, "SELECT * FROM users"); while ($rida = mysqli_fetch_row($result)) ( kaja "Eesnimi: $rida. Perekonnanimi: $rida. Vanus: $rida.
"; ) kaja"

Nõutavas vanuses (21, 26, 33) inimesed:
"; $result = mysqli_query($link, "SELECT * FROM users WHERE age IN (21, 26, 33)"); while ($line = mysqli_fetch_row($result)) ( echo "Eesnimi: $rida. Perekonnanimi : $ rida. Vanus: $ rida.
"; ) mysqli_close($link);

Maksimaalne ja minimaalne väärtus veerus

Valib kasutajate tabelis maksimaalse vanuse väärtuse.

VALI max(vanus) kasutajatelt

Järgmine päring valib kasutajate tabelist andmed nime ja vanuse väljade abil, kus vanus võtab minimaalse väärtuse.

VALI kasutajate nimi, minimaalne vanus

Kirje värskendamine – VÄRSKENDUS

Määrame Max Lopesi vanuseks 15 aastat. Seda tehakse MySQL-päringuga:

VÄRSKENDAGE kasutajaid SET vanus="15" WHERE name="Max" AND perekonnanimi="Lopes"

Pange tähele uut käsku JA (inglise keeles tähendab "ja") päringus. Kui me perekonnanime ei täpsusta, siis määratakse tabelis kõikidele Maxidele vanuseks 15 aastat.

Ühe päringuga saate värskendada kahte või enamat välja ühes reas. Seda tehakse järgmiselt.

UPDATE kasutajad SET vanus = "18", perekonnanimi = "Pliit" WHERE id = "3"

Meie tabelis ei ole ID-välja, seega see päring sellel ei tööta. Kuid kindlasti õpime selgeks selle unikaalseid reanumbreid sisaldava välja.

Kirje kustutamine - DELETE

MySQL-i andmebaasi päring kirje kustutamiseks:

DELETE FROM kasutajatest WHERE id = "10"

Jällegi pole meie tabelis id-välja. Kuid me võime sealt eemaldada kõik alla 18-aastased.

DELETE FROM kasutajatest WHERE vanuses< "18"

Tabeli kustutamine – TABLE TABEL

MySQL-i andmebaasi päring, mis kustutab kogu kasutajate tabeli:

Drop TABLE kasutajad

Veeru kustutamine - ALTER TABLE ... Drop ...

Mõnikord peate võib-olla tabelist veeru eemaldama, näiteks eemaldame kasutajate vanuse veeru:

ALTER TABLE kasutajate vanus langeb

See MySQL-päring kustutas veeru jäädavalt ja jäädavalt.

Lisa veerg - ALTER TABLE ... LISA ...

Mõnikord peate võib-olla lisama olemasolevasse tabelisse veeru, näiteks lisame vanuse veeru tagasi kasutajate tabelisse:

ALTER TABLE kasutajad LISA vanus TINYINT UNsigned

Veeru ümbernimetamine - ALTER TABLE ... CHANGE ...

Mõnikord peate võib-olla veeru ümber nimetama, näiteks nimetama vanuse veeru ümber vozrastiks. Teeme seda nii:

ALTER TABLE kasutajad MUUDA vanust vanus TINYINT UNSINGNED

See MySQL-päring nimetas veeru vanuse ümber vozrastiks andmetüübiga TINYINT UNSIIGNED.

Tabeli ümbernimetamine – NIME TABLE ÜMBER ... KUNI ...

Mõnikord peate võib-olla tabeli ümber nimetama:

NIME TABLE'i kasutajad ÜMBER

Andmebaasi eemaldamine - DROPP DATABASE

See päring võib kustutada andmebaasi nimega tester:

DROP DATABASE tester

Andmebaasi loomine - CREATE DATABASE

See päring loob andmebaasi nimega tester:

LOO ANDMEBAASI tester

See taotlus töötab minu jaoks Denveris, kuid hostimisel ei pruugi see toimida, kui andmebaasi kasutajal pole õigusi kustutada.

Tulemused

Niisiis, selles osas tutvusime päringutega MySQL-ile. Paljud meie uuritud päringud ei ole meile tööprotsessis sageli kasulikud, kuid me peame neid teadma, kuna need tulevad skriptide väljatöötamisel kindlasti kasuks.

Mõned päringud tehakse tavaliselt ainult phpMyAdminilt (näiteks andmebaaside loomine ja kustutamine).

Veebisaitidel töötades peate tavaliselt tabelisse kirje lisama, kirjet redigeerima või kirje tabelist kustutama.

Järgmine samm on õppida tundma MySQL-i andmetüüpe.