Izmantojot php...

Savienojuma izveide dažādos veidos:

1) vecmodīgs veids, kā izveidot savienojumu ar MySQL:

$conn=mysql_connect($db_hostname, $db_username, $db_password) vai die ("Nav savienojuma ar serveri");
mysql_select_db($db_database,$conn) vai die ("Nē, nebija iespējams izveidot savienojumu ar datu bāzi");

Tālāk norādīto mainīgo lielumu skaidrojumi.

Tiek izmantotas šādas funkcijas:

  • mysql_connect()- izveidot savienojumu ar serveri;
  • mysql_select_db()- pieslēgties datu bāzei;

Tajā pašā laikā mēs pastāvīgi pārbaudām kļūdas šādā veidā: vai nomirst (“Kļūda ir tāda un tāda”); - tulkots vai mirt ar tādu un tādu kļūdu - lai uzreiz atrastu, kur ir kļūda.

config.php

// mainīgie, lai izveidotu savienojumu ar datu bāzi
$host = "localhost"; /host
$lietotājvārds = "sakne"; // parole savienojumam ar datu bāzi
$parole = ""; // parole savienojumam ar datu bāzi - lokālajā datorā tā var būt tukša.
$datubāzes_nosaukums = "mans-dolgi"; // datu bāzes nosaukums

// vecais veids, kā izveidot savienojumu ar datu bāzi
mysql_connect($host, $lietotājvārds, $parole) or die("Nevar izveidot savienojumu");

// atlasiet datu bāzi. Ja ir kļūda, izvadiet
mysql_select_db($datubāzes_nosaukums) vai die(mysql_error());

indekss.php

request_once "config.php";


$result = mysql_query("SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5") vai die(mysql_error());



";


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


mysql_free_result($rezultāts);

// Aizveriet savienojumu
mysql_close();

2) Progresīvāks procesuālais stils - savienojuma izveide ar datu bāzi, izmantojot mysqli:

Šī metode:

  1. ērts;
  2. līdz 40 reizēm ātrāk;
  3. paaugstināta drošība;
  4. ir jaunas iespējas un funkcijas;

Piemērs savienojumam ar datu bāzi PHP ar atlasi no tabulas

config.php

// savienojumi ar datu bāzi
$ saite = mysqli_connect("localhost", "lietotājvārds", "parole", "nosaukuma datu bāze"); // šeit mēs tieši ievadām jūsu datus: lietotājvārdu, paroli un datu bāzes nosaukumu, pirmais lauks parasti ir localhost

// izejas savienojuma kļūda
if (!$link) (
echo "Kļūda pieslēdzoties datu bāzei. Kļūdas kods: " . mysqli_connect_error();
Izeja;
}

Lūdzu, ņemiet vērā - visur tiek izmantots mysqli, nevis mysql!!!

indekss.php

request_once "config.php";

// Izpildi pieprasījumu. Ja ir kļūda, mēs to parādām
if ($rezultāts = mysqli_query($saite,"IZVĒLĒTIES VĀRDS, NAUDA NO Parāda PASŪTĪJUMS PĒC Money DESC LIMIT 5") (

Atbalss "Kam es esmu parādā dilstošā secībā:

";

// Notiek vaicājuma rezultātu iegūšana
while ($rinda = mysqli_fetch_assoc($rezultāts)) (
echo $row["Vārds"] . "ar parādu". $row["Nauda"] . "rubļi.
";
}

// izmantotās atmiņas atbrīvošana
mysqli_free_result($rezultāts);

// Aizveriet savienojumu
mysqli_close($saite);
}

Kā redzat, daži punkti ir mainījušies (slīprakstā).

3) Objektorientēta metode savienojuma izveidei ar MySQL datu bāzi - izmantojot metodes un klases:

Mīnusi: sarežģītāks un mazāk pakļauts kļūdām.

Plusi: īsums un ērtības pieredzējušiem programmētājiem.

$conn = jauns mysqli($db_resursdatora nosaukums, $db_lietotājvārds, $db_parole, $db_datubāze);
if($conn->connect_errno)(
mirst($savien.->connect_error);
) else (atbalss "Savienojums ar datu bāzi tika veiksmīgi izveidots";)

šeit principā viss ir intuitīvi:

  • $db_hostname ir saimnieks(galvenokārt vietējais saimnieks),
  • $db_database — db nosaukums;
  • $db_username un $db_password - lietotājvārds un parole attiecīgi!

Piemērs savienojumam ar datubāzi php OOP stilā ar paraugu ņemšanu no tabulas

config.php

// savienojumi ar datu bāzi
$mysqli = jauns mysqli("localhost", "lietotājvārds", "parole", "nosaukuma datu bāze"); // šeit mēs tieši ievadām jūsu datus: lietotājvārdu, paroli un datu bāzes nosaukumu, pirmais lauks parasti ir localhost

// izejas savienojuma kļūda
if ($mysqli->connect_error) (
die ("DB savienojuma kļūda: (" . $mysqli->connect_errno . ") " . mysqli_connect_error) ;
}

Lūdzu, ņemiet vērā - visur tiek izmantots mysqli, nevis mysql!!! un atšķirībā no iepriekšējās metodes parādās bultiņas “->”, kas norāda, ka šis ir OOP stils.

indekss.php

request_once "config.php";

// Izpildi pieprasījumu. Ja ir kļūda, mēs to parādām
if ($rezultāts = $ mysqli-> vaicājums("Atlasiet vārdu, naudu no parāda PASŪTĪJUMU PĒC Money DESC LIMIT 5") (

Atbalss "Kam es esmu parādā dilstošā secībā:

";

// Notiek vaicājuma rezultātu iegūšana
while ($rinda = $rezultāts-> fetch_assoc()) {
echo $row["Vārds"] . "ar parādu". $row["Nauda"] . "rubļi.
";
}

// izmantotās atmiņas atbrīvošana
$rezultāts->aizvērt ();

// Aizveriet savienojumu
$mysqli-> aizvērt();
}

Tavs uzdevums ir atrast atšķirības.

4) Saziņa ar datubāzi, izmantojot ACVN:

Pieslēdzoties MySQL datu bāzei, tiek izmantotas sagatavotas izteiksmes (izmantojot sagatavošanas metodi) un rezultātā lielāka drošība un ievērojami palielinās veiktspēja.

konfigurācijas fails no iepriekšējās metodes! - tas pats

indekss.php

// ACVN stils saziņai ar MySQL
if ($stmt = $mysqli->prepare("SELECT Name, Voney FROM Dolg ORDER BY Money< ? LIMIT 5")) {

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

//sākt izpildi
$stmt->izpildīt();

// Mainīgo deklarēšana sagatavotajām vērtībām
$stmt->bind_result($col1, $col2);

Atbalss "Kam es esmu parādā dilstošā secībā:

";

// Notiek vaicājuma rezultātu iegūšana
while ($stmt->fetch()) (
atbalss $col1 . "ar parādu". $col2 . "rubļi.
";
}

// izmantotās atmiņas atbrīvošana
$stmt->close();

// Aizveriet savienojumu
$mysqli->aizvērt ();

Kā redzat, tas ir daudz sarežģītāk, un jums ir jāizpēta ACVN - tā ir atsevišķa tēma.

Es atceros tos laikus, kad es vēl nezināju, kas tas ir mysql un bieži meklēja šādus rakstus internetā. Bet kādu iemeslu dēļ tās tika atrastas reti. Tagad esmu nolēmis publicēt vienu, lai tajā būtu noderīgi raksti mysql Un php ir vēl viens. Es centīšos visu uzrakstīt pieejamā valodā.

darba sākšana ar mysql un php

Tātad, vispirms mums ir nepieciešams vietējais serveris, lai mēs varētu darboties php skripti un pieslēdzies datu bāzei (turpmāk saukšu to par DB, kas nozīmē “datu bāze”). Ja jums vēl nav lokālā servera, vispirms izlasiet Instalēšana un konfigurācija vietējais saimnieks un pēc tam sāciet pētīt datubāzi mysql un tā DBVS (datu bāzes pārvaldības rīks).

Ja jums jau ir šis serveris, dariet to. Pirmkārt, es vēlos jūs iepazīstināt ar DBVS PhpMyAdmin, tas ļauj pārvaldīt (pievienot, dzēst, mainīt) ierakstus datu bāzē.

Šī ir galvenā lapa DBVS PhpMyAdmin. Šeit jūs varat izveidot savu datu bāzi un saglabāt tajā nepieciešamos ierakstus. Tas ir ļoti ērti, veidojot vietnes, jo informācija ir strukturēta un jūs varat ļoti ātri iegūt jebkuru ierakstu no datu bāzes.

Kā jau minēts, raksta pirmā daļa, ievads mysql Un phpmyadmin. Es domāju, ka tagad jūs saprotat, kas ir mysql, un mēs varam sākt pētīt phpmyadmin funkcionalitāti. Lai sāktu, mums būs jāizveido pati datu bāze. Viņai būs savs vārds, pēc kura mēs viņu meklēsim.

Šeit ir datu bāzes vispārējā struktūra:

Lai izveidotu datu bāzi, ievades laukā zem rindas “Izveidot jaunu datu bāzi” (PhpMyAdmin galvenajā lapā) ievadiet jebkuru topošās datu bāzes nosaukumu (nevis kirilicā!). Es izveidošu datu bāzi ar nosaukumu "baza". Tagad, sekojot datu bāzes struktūras diagrammai, mums ir jāizveido tabula. Lai to izdarītu, pēc datu bāzes izveidošanas jums būs šāds logs:

Šeit es veidoju tabulu ar nosaukumu lietotāji un tajā ir 3 lauki. Pēc tam phpmyadmin lūgs mums iestatīt katra lauka struktūru:

Šeit ailē “Lauks” jānorāda nosaukums, ailē “Tips” norādām tur glabājamo datu veidu (INT ir skaitlis, VARCHAR ir virkne vai mazs(!) teksts). Laukā “Papildu” mēs norādām laukā “id” parametru “auto_increament”, kas nozīmē, ka tas palielināsies katru reizi, kad ievietosit datus, un mēs iestatām parametru “Primārā atslēga” (ielieciet apli), tas nozīmē, ka saskaņā ar pirmo kolonnu mēs varam unikāli identificēt lauku.

“Unikāli identificēt lauku” nozīmē, ka pat tad, ja vārds un uzvārds ir vienādi, kolonnai “id” būs atšķirīgas vērtības (jo tā katru reizi tiek automātiski palielināta par vienu).

Tagad noklikšķiniet uz "Saglabāt". Tādējādi izveidojām lietotāju tabulu, kurā varam saglabāt vārdu un uzvārdu (nav jāievieto id, mysql visu izdarīs mūsu vietā), lietotāju datubāzē. Mēs izveidojām tabulu ierakstu glabāšanai. Kā tos tur ievietot? Lasi zemāk 😉

Izvēlnē atlasiet “Ievietot” un ierakstiet vajadzīgās vērtības nepieciešamajos laukos. Tagad, kā izdzēst vai mainīt vērtības mysql datu bāzē, izmantojot PhpMyAdmin DBMS... Lai dzēstu, vienkārši dodieties uz izvēlni “Pārlūkot” un noklikšķiniet uz sarkanā krusta blakus ierakstam:

Un, lai rediģētu, noklikšķiniet uz zīmuļa un nomainiet nepieciešamos laukus. Nu, šīs ir nodarbības beigas. Tagad jūs varat pārvaldīt mysql datu bāzi, izmantojot PhpMyAdmin. Nākamajā nodarbībā es iemācīšu, kā datu bāzē uzglabāt, izgūt, dzēst un atjaunināt datus izmantojot php. Tas ir ļoti ērti un praktiski.

Darbs ar mysql datu bāzi no php

Tātad, vispirms jums jāiemācās izveidot savienojumu ar jau izveidotu datu bāzi. Lai to izdarītu, izmantojiet šādu kodu:

Iepriekš minētajā kodā es izveidoju savienojumu ar localhost serveri, izmantojot pieteikšanos sakne kurai nav nepieciešama parole (tāpēc mēs to nenorādām). Pēc savienojuma izveides ar datu bāzi mēs varam veikt visas darbības, kuras veicām phpmyadmin DBVS. Tas ir, dažādas informācijas ievietošana, dzēšana, mainīšana un izgūšana. Tagad punktu pa punktam:

Ierakstu ievietošana SQL datu bāzē php

$query="INSERT INTO `tabula` (`norādīt lauku`,`norādīt lauku`) VĒRTĪBAS ("jebkura vērtība","jebkura vērtība""); $rezultāts=mysql_query($vaicājums); if($result==true) (atbalss "Veiksmi!"; ) else ( echo "Kļūda!
".mysql_error(); )

Tas nozīmē, ka ievietošanu veic funkcija INSERT. Ja viss noritēja labi, tad mysql atgriezīs rezultātu true, vai citādi - false.

Varat norādīt tik daudz lauku, cik vēlaties, galvenais, lai tie visi būtu datu bāzē. Tas ir, piemēram, ir tabula, kurā ir lauki “vārds”, “uzvārds” un “pilsēta”. Lai tajā ievietotu vērtības, mēs izmantosim šādu kodu:

$query="INSERT INTO `lietotāji` (`vārds`,`uzvārds`,`pilsēta`) VĒRTĪBAS ("Ruslan","Huzin","Kokshetau""); $rezultāts=mysql_query($vaicājums); if($result==true) (atbalss "Veiksmi!"; ) else ( echo "Kļūda!
".mysql_error(); )

Ierakstu dzēšana no SQL datu bāzes php

Dzēšana tiek veikta, izmantojot funkciju DELETE. Kods šim būtu apmēram šāds:

$query="DELETE FROM `users` WHERE `name`="Ruslan" "; $rezultāts=mysql_query($vaicājums); if($result==true) (atbalss "Veiksmi!"; ) else ( echo "Kļūda!
".mysql_error(); )

Tas ir, mēs izdzēsīsim no lietotāju tabulas visas rindas (vai vienu), kurās nosaukuma kolonna ir vienāda ar Ruslan vērtību.

Vērtību maiņa MySQL datubāzē php

Varam arī veikt izmaiņas esošajos tabulas ierakstos. Piemēram, mums jāaizstāj vārda kolonnas vērtība rindā, kur uzvārda kolonnai ir vērtība Huzin. Lai to izdarītu, mēs izpildām šādu kodu:

$query="UPDATE `users` SET `name`="mans vārds" WHERE `surname`="Huzin" "; $rezultāts=mysql_query($vaicājums); if($result==true) (atbalss "Veiksmi!"; ) else ( echo "Kļūda!
".mysql_error(); )

Vērtību iegūšana no datu bāzes

Tagad nāk jautrākā daļa. Tā kā mēs kaut ko pierakstījām, mums tas ir jāatgriež, vai ne? Piemēram, mums ir jāiegūst visa rinda no lietotāju tabulas, kur nosaukuma kolonna ir vienāda ar Ruslan. Lai to izdarītu, mums ir nepieciešams nedaudz atšķirīgs kods nekā pirmajos piemēros. Te tas ir:

$query="SELECT * FROM WHERE `name`="Ruslan" "; $rezultāts=mysql_query($vaicājums); if($result==true) (atbalss "Veiksmi!"; ) else ( echo "Kļūda!
".mysql_error(); ) $data=mysql_fetch_array($result); /* Tagad mainīgais saglabā datus no tabulas */

Šeit mums vajadzēja vēl vienu funkciju, lai izvēlētos datus ierakstītu mainīgajā (masīvā) php. Lai piekļūtu izvēlētajai rindai, mēs rakstām šādi:

$data["kolonnas nosaukums"]

tas ir, lai iegūtu uzvārdu no atlasītās rindas (kur vārds bija Ruslans), mums kā izvade jāraksta:

atbalss $dati["uzvārds"];

Un, izvēloties no tabulas, viņi uzrakstīja SELECT * , šī zvaigznīte nozīmē, ka jums ir jāatlasa visas kolonnas no rindas. Ja nepieciešams, piemēram, izvēlēties tikai uzvārdu, rakstām SELECT `uzvārds`. Un, lai no tabulas atlasītu vairākas rindas vienlaikus, jums būs nepieciešama arī cilpa, lai tās parādītu. Tas ir gadījumā, ja, piemēram, ir vairākas rindas ar kolonnu Ruslan. Lūk, kods:

$query="SELECT * FROM WHERE `name`="Ruslan" "; $rezultāts=mysql_query($vaicājums); while($data=mysql_fetch_array($result)) (echo $data["nosaukums"]."
".$data["uzvārds"]."


"; }

Tagad ekrānā tiks parādītas visas rindas, kuru nosaukuma kolonna ir vienāda ar vērtību Ruslan.

Tagad esat iepazinies ar vadības pamatfunkcijām mysql datu bāze tieši no php skripts.

MySQL ir relāciju datu bāzes veids. MySQL ir serveris, kuram var izveidot savienojumu ar dažādiem lietotājiem.

Vai, pieslēdzoties internetam, ievadāt savu lietotājvārdu un paroli, kā arī tā servera nosaukumu, ar kuru veidojat savienojumu? Strādājot ar MySQL, tiek izmantota tā pati sistēma.

Vēl viena lieta: kas ir relāciju datu bāze? Relāciju līdzekļi, kuru pamatā ir tabulas. Microsoft slavenais izklājlapu redaktors Excel faktiski ir relāciju datu bāzes redaktors.

Savienojuma izveide ar MySQL serveri

Lai izveidotu savienojumu ar MySQL serveri PHP, izmantojiet funkciju mysqli_connect(). Šai funkcijai ir trīs argumenti: servera nosaukums, lietotājvārds un parole.

Funkcija mysqli_connect() atgriež savienojuma identifikatoru, tas tiek saglabāts mainīgajā un vēlāk tiek izmantots darbam ar datu bāzēm.

MySQL servera savienojuma kods:

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

Šajā gadījumā es strādāju pie vietējā datora Denwere, tāpēc resursdatora nosaukums ir localhost, lietotājvārds ir root un nav paroles.

Savienojums ir jāslēdz arī pēc darba pabeigšanas ar MySQL. Funkcija mysqli_close() tiek izmantota, lai aizvērtu savienojumu. Izvērsīsim piemēru:

$ saite = mysqli_connect("localhost", "root", ""); if (!$link) die("Kļūda"); mysqli_close($saite);

Šeit mēs pārbaudījām savienojuma identifikatora patiesumu; ja ar mūsu savienojumu kaut kas nav kārtībā, programma netiks izpildīta, funkcija die() pārtrauks tās izpildi un pārlūkprogrammā parādīs kļūdas ziņojumu.

Savienojuma kļūdas

Lai pārbaudītu savienojumu, tiek izmantotas šādas funkcijas:

  • mysqli_connect_errno() - atgriež pēdējā savienojuma mēģinājuma kļūdas kodu. Ja kļūdu nav, atgriež nulli.
  • mysqli_connect_error() — atgriež MySQL serverim pēdējās savienojuma kļūdas aprakstu.
define("HOST", "localhost"); define("DB_USER", "sakne"); define("DB_PASSWORD", ""); define("DB", "testētājs"); $saite = mysqli_connect(HOST, DB_USER, DB_PASSWORD, DB); /* pārbaudīt savienojumu */ if (mysqli_connect_errno()) ( printf("Nevar izveidot savienojumu: %s\n", mysqli_connect_error()); iziet(); ) else ( printf("Veiksmīgi izveidots savienojums: %s\n" , mysqli_get_host_info($link)); )

Funkcija mysqli_get_host_info() atgriež virkni, kas satur izmantotā savienojuma veidu.

Ņemiet vērā arī to, ka, izmantojot komandu define, es saglabāju visus savienojuma parametrus kā konstantes. Rakstot lielus projektus un MySQL serverim pieslēdzas daudz failu, savienojuma parametrus ir ērti glabāt atsevišķā failā un ievietot to, izmantojot iekļaut vai pieprasīt funkciju.

Datu bāzes izvēle

MySQL serverim var būt vairākas datu bāzes. Pirmkārt, mums ir jāizvēlas bāze, ar kuru mums jāstrādā. PHP tam ir vēl viens parametrs funkcijā mysqli_connect() - datu bāzes nosaukums.

Es to izveidoju savā datorā, izmantojot phpMyAdmin ar nosaukumu testeri. Savienosimies ar to:

$ saite = mysqli_connect("localhost", "root", "", "testeris"); if (!$link) die("Kļūda"); mysql_close($saite);

Tātad, mēs esam izvēlējušies datu bāzi, ar kuru strādāt. Bet, kā mēs zinām, relāciju datu bāze sastāv no tabulām, un mūsu datu bāzē vēl nav tabulu. Datu bāze ir izveidota tukša, bez tabulām. Atsevišķi tam jāpievieno tabulas. Tagad pievienosim tai tabulu, izmantojot PHP.

Izveidojiet tabulu

MySQL datu bāzu nosaukumā SQL daļa apzīmē strukturēto vaicājumu valodu, kas tiek tulkota kā strukturēta vaicājumu valoda. Mēs rakstīsim vaicājumus SQL un nosūtīsim tos MySQL serverim no PHP programmas.

Lai izveidotu tabulu, mums vienkārši jāizdod komanda CREATE TABLE. Izveidosim tabulu ar nosaukumu lietotāji, kuras kolonnās tiks saglabāti lietotāju logins (slejā login) un paroles (paroles kolonna).

$query = "IZVEIDOT TABULU lietotājus(pieteikšanās VARCHAR(20), parole VARCHAR(20))";

Šajā kodā mainīgajam $query esam piešķīruši teksta virkni, kas apzīmē SQL vaicājumu. Mēs izveidojam tabulu ar nosaukumu Users, kurā ir divas kolonnas login un parole, abām datu tipiem ir VARCHAR(20). Par datu veidiem runāsim vēlāk, pagaidām tikai atzīmēšu, ka VARCHAR(20) ir virkne, kuras maksimālais garums ir 20 rakstzīmes.

Lai nosūtītu savu vaicājumu MySQL serverim, mēs izmantojam PHP funkciju mysqli_query(). Šī funkcija atgriež pozitīvu skaitli, ja darbība bija veiksmīga, un nepatiesu, ja radās kļūda (pieprasījuma sintakse ir nepareiza vai programmai nav atļaujas izpildīt pieprasījumu).

$ saite = mysqli_connect("localhost", "root", "", "testeris"); if (!$link) die("Kļūda"); $query = "IZVEIDOT TABULU lietotājus(pieteikšanās VARCHAR(20), parole VARCHAR(20))"; mysqli_query($vaicājums); mysqli_close($saite);

SQL vaicājums nav jāieraksta mainīgajā; to var ierakstīt tieši kā argumentu funkcijai mysql_query(). Tas tikai padara kodu lasāmāku.

Šim skriptam ir viens trūkums - tas neko neizvada pārlūkprogrammai. Pievienosim ziņu:

$ saite = mysqli_connect("localhost", "root", "", "testeris"); if (!$link) die("Kļūda"); $query = "IZVEIDOT TABULU lietotājus(pieteikšanās VARCHAR(20), parole VARCHAR(20))"; if (mysqli_query($query)) echo "Tabula ir izveidota."; else echo "Tabula nav izveidota."; mysqli_close($saite);

Ja mēs atkal izpildīsim šo skriptu, pārlūkprogrammā redzēsim ziņojumu: "Tabula nav izveidota." Fakts ir tāds, ka tabula tika izveidota pirmās palaišanas laikā, un nav iespējams atkārtoti izveidot tabulu ar tādu pašu nosaukumu. Mēs saskaramies ar kļūdu situāciju, tāpēc ir pienācis laiks runāt par kļūdu apstrādi, strādājot ar MySQL.

Kļūda apstrādē

Programmas atkļūdošanas laikā mums var būt nepieciešama precīza informācija par kļūdu. Kad MySQL rodas kļūda, datu bāzes serveris iestata kļūdas numuru un rindiņu ar tā aprakstu. PHP ir īpašas funkcijas, lai piekļūtu šiem datiem.

  • mysqli_errno() - atgriež kļūdas numuru.
  • mysqli_error() - atgriež virkni, kas apraksta kļūdu.

Tagad pievienosim mūsu skriptam funkciju mysql_error().

$saite = mysql_connect("localhost", "root", "", "testeris"); if (!$link) die("Kļūda"); $query = "IZVEIDOT TABULU lietotājus(pieteikšanās VARCHAR(20), parole VARCHAR(20))"; if (mysqli_query($query)) echo "Tabula ir izveidota."; else echo "Tabula nav izveidota: ".mysqli_error(); mysqli_close($saite);

Tagad mūsu skripts pārlūkprogrammā atgriezīs rindu: "Tabula nav izveidota: tabula "lietotāji" jau pastāv."

Tabulas dzēšana

Tātad, tagad mums ir tabula, kas mums nav vajadzīga. Ir pienācis laiks iemācīties izmest tabulas no datu bāzes.

Lai nomestu tabulu, izmantojiet komandu DROP TABLE, kam seko tabulas nosaukums.

$ saite = mysqli_connect("localhost", "root", "", "testeris"); if (!$link) die("Kļūda"); $query = "DOP TABLE lietotājus"; if (!mysqli_query($query)) echo "Kļūda dzēšot tabulu: ".mysqli_error(); else echo "Tabula izdzēsta."; mysqli_close($saite);

Rezultāti

Tātad, mēs esam apguvuši MySQL pamatus. Ko mēs iemācījāmies darīt:

  • Izveidojiet savienojumu ar MySQL datu bāzi, izmantojot funkciju mysqli_connect().
  • Aizveriet savienojumu ar MySQL serveri, izmantojot funkciju mysqli_close().
  • Nosūtiet SQL vaicājumus uz MySQL serveri, izmantojot funkciju mysqli_query().
  • Mēs apguvām SQL vaicājumu tabulas izveidei: izveidot tabulu.
  • Mēs iemācījāmies SQL vaicājumu tabulas dzēšanai: nomest tabulu.
  • Mēs uzzinājām, kā rīkoties ar kļūdām, izmantojot funkcijas mysqli_errno () un mysqli_error ().

Pēc tam mēs tuvāk apskatīsim MySQL datu tipus.

Izlasiet nākamo nodarbību:

DARBS AR MySQL DATU BĀZI AR PHP RĪKIEM

Lekcija. Sagatavoja Prohorovs V.S.


1. PHP SCENĀRIJU SAVIENOŠANA ar MySQL tabulām

Apskatīsim visbiežāk izmantotās funkcijas, kas ļauj strādāt ar MySQL datu bāzi, izmantojot PHP.

Kad PHP un MySQL mijiedarbojas, programma mijiedarbojas ar DBVS, izmantojot funkciju kopu.

1.1 Savienojums ar serveri. Funkcijamysql_connect

Pirms darba ar datu bāzi ir jāizveido tīkla savienojums ar to, kā arī jāautorizē lietotājs. Šim nolūkam tiek izmantota funkcija mysql_connect().

resurss mysql_connect(]])

Šī funkcija izveido tīkla savienojumu ar MySQL datu bāzi, kas atrodas resursdatorā $server (pēc noklusējuma tas ir localhost, t.i., pašreizējais dators) un atgriež atvērtā savienojuma ID. Viss turpmākais darbs tiek veikts ar šo identifikatoru. Visas pārējās funkcijas, kas izmanto šo identifikatoru (rokturi) kā argumentu, unikāli identificēs atlasīto datu bāzi. Reģistrējoties norādiet lietotājvārdu $lietotājvārds un paroli $password (pēc noklusējuma lietotājvārds, no kura darbojas pašreizējais process - atkļūdojot skriptus: root un tukša parole):

$dbpasswd = ""; //Parole

//Parādīt brīdinājumu

atbalss ("

");

Mainīgie $dblocation, $dbuser un $dbpasswd saglabā servera nosaukumu, lietotājvārdu un paroli.

1.2 Atvienošanās no servera. Funkcijamysql_close

Savienojums ar MySQL serveri tiks automātiski aizvērts, kad skripts tiks pabeigts vai kad tiks izsaukta funkcija mysql_close

bool mysql_close()

Šī funkcija aizver savienojumu ar MySQL serveri un atgriež True, ja darbība ir veiksmīga, un false pretējā gadījumā. Funkcija izmanto kā argumentu datu bāzes savienojuma rokturi, ko atgriež funkcija mysql_connect.

$dblocation = "localhost"; //Servera nosaukums

$dbuser = "sakne"; //Lietotājvārds

$dbpasswd = ""; //Parole

//Izveidojiet savienojumu ar datu bāzes serveri

//Pirms funkcijas izsaukšanas apspiest kļūdu izvadi ar simbolu @

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

if (!$dbcnx) //Ja deskriptors ir 0, savienojums nav izveidots

//Parādīt brīdinājumu

atbalss ("

Datubāzes serveris pašlaik nav pieejams, tāpēc lapu nevar pareizi parādīt.");

if (mysql_close($dbcnx)) //aizveriet savienojumu

echo ("Datu bāzes savienojums pārtraukts");

echo("Mēs nevarējām pabeigt savienojumu");

1.3 Datu bāzes izveide. Funkcija CREATE DATABASE

Komanda - izveidot datu bāzi ir pieejama tikai servera administratoram, un lielākajā daļā mitināšanas vietņu to nevar izpildīt:

CREATE DATABASEDatabaseName

Izveido jaunu datu bāzi ar nosaukumu DatabaseName.

Piemērs darbam ar šo funkciju:

@mysql_query("IZVEIDOT DATU BĀZI $dbname");

Ieteicams visur izmantot apostrofus (“SQL – komanda”) kā atdalītājus rindām, kurās ir SQL – komandas. Tas nodrošina, ka neviens $ mainīgais netiek nejauši interpolēts (t.i., aizstāts ar tā vērtību), un palielina skripta drošību.

Datu bāzes izveides komanda CREATE DATABASE ir pieejama tikai superlietotājam, un lielākajā daļā mitināšanas vietņu vienkāršam lietotājam to nav iespējams izpildīt. Tas ir pieejams tikai servera administratoram.

Eksperimentiem izveidosim testbase datubāzi, izpildot SQL vaicājumu no komandrindas. Lai to izdarītu, jums jāpiesakās MySQL un MySQL komandrindā jāievada:

mysql izveidot datu bāzes testa bāzi;

Pēc tam jums jāievada:

mysql> use testbase;

Izveidota datu bāze:


1.4. Datu bāzes izvēle. Funkcijamysql_select_db

Pirms pirmā pieprasījuma nosūtīšanas uz MySQL serveri mums jānorāda, ar kuru datu bāzi mēs strādāsim. Funkcija mysql_select_db ir paredzēta šim nolūkam:

bool mysql_select_db(virkne $database_name [,resurss $link_identifier])

Tas informē PHP, ka turpmākās darbības ar savienojumu $link_identifier izmantos datubāzi $database_name.

Šīs funkcijas izmantošana ir līdzvērtīga use komandas izsaukšanai SQL vaicājumā, t.i., funkcija mysql_select_db atlasa datu bāzi turpmākam darbam, un visi nākamie SQL vaicājumi tiek lietoti atlasītajai datu bāzei. Funkcija izmanto kā argumentus atlasītās datu bāzes nosaukumu datu bāzes_nosaukums un savienojuma deskriptora resursu. Funkcija atgriež patiesu, ja darbība bija veiksmīga, un false citos gadījumos:

//Datu bāzes savienojuma kods

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

//Parādīt brīdinājumu

atbalss ("

Datubāze pašlaik nav pieejama, tāpēc lapu nevar pareizi parādīt.");

1.5 Kļūdu apstrāde

Ja, strādājot ar MySQL, rodas kļūdas (piemēram, vaicājuma iekavas nav līdzsvarotas vai nav pietiekami daudz parametru), tad kļūdas ziņojumu un tā numuru var iegūt, izmantojot divas tālāk aprakstītās funkcijas.

Ir svarīgi šīs funkcijas izmantot uzmanīgi un nekavējoties, jo pretējā gadījumā skriptu atkļūdošana var kļūt grūtāka.

● Funkcija:

int mysql_errno()

atgriež pēdējās ziņotās kļūdas numuru. Savienojuma identifikatoru $link_identifier var izlaist, ja skripta izpildes laikā tika izveidots tikai viens savienojums.

● Funkcija:

virkne mysql_error()

atgriež nevis skaitli, bet gan virkni, kurā ir kļūdas ziņojuma teksts. To ir ērti izmantot atkļūdošanas nolūkos. Parasti mysql_error tiek izmantots kopā ar vai die() konstrukciju, piemēram:

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

or die("Kļūda, pieslēdzoties datu bāzei: ".mysql_error());

@ operators, kā parasti, kalpo, lai izslēgtu standarta brīdinājumu, kas var rasties kļūdas gadījumā.

Jaunākajās PHP versijās brīdinājumi MySQL funkcijās pēc noklusējuma netiek reģistrēti.

1.6. Savienojuma ar MySQL automatizācija. Fails (config.php)

Parasti vietnē ir vairāki skripti, kuriem nepieciešama piekļuve vienai un tai pašai datubāzei.

Ieteicams atdalīt kodu, kas atbild par savienojumu ar MySQL, atsevišķā failā un pēc tam savienot to ar nepieciešamajiem skriptiem, izmantojot funkciju iekļaut.

Savienojuma, atlases un datu bāzes izveides funkcijas ir lietderīgi ievietot tajā pašā failā (config.php), kur tiek deklarēti mainīgie ar servera nosaukumu $dblocation, lietotājvārdu $dbuser, paroli $dbpasswd un datu bāzes nosaukumu $dbname:

config.php saraksts:

//config.php faila kods, kas satur parametrus savienojumam ar serveri un datu bāzes atlasei

//izvada savienojuma kļūdu ziņojumus pārlūkprogrammā

$dblocation = "localhost"; //Servera nosaukums

$dbname = "ievietot datu bāzes nosaukumu" //Datu bāzes nosaukums: tiek izveidots vai pastāv

$dbuser = "sakne"; //Datu bāzes lietotājvārds

$dbpasswd = ""; //Parole

//Izveidojiet savienojumu ar datu bāzes serveri

//Pirms funkcijas izsaukšanas apspiest kļūdu izvadi ar simbolu @

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

if (!$dbcnx) //Ja deskriptors ir 0, savienojums ar datu bāzes serveri nav izveidots

//Parādīt brīdinājumu

atbalss ("

Datubāzes serveris pašlaik nav pieejams, tāpēc lapu nevar pareizi parādīt.

");

//Izveidojiet datubāzi $dbname — to var izdarīt tikai superlietotājs

//Ja datu bāze jau eksistē, radīsies kļūda, kas nav fatāla

@mysql_query("IZVEIDOT DATU BĀZI, ja tāda nav $dbname');

//Savienojuma kods ar datu bāzi: veicam nepārprotamu jaunizveidotas vai jau esošas datu bāzes atlasi

//Pirms funkcijas izsaukšanas apspiest kļūdu izvadi ar simbolu @

if(!@mysql_select_db($dbname, $dbcnx)) //Ja deskriptors ir 0, savienojums ar datu bāzi nav izveidots

//Parādīt brīdinājumu

atbalss ("

Datubāze pašlaik nav pieejama, tāpēc lapu nevar pareizi parādīt.

");

//Maza palīga funkcija, kas izdrukā ziņojumu

//kļūdas ziņojums datu bāzes vaicājuma kļūdas gadījumā

funkcija puterror($message)

atbalss("");


2. DATU BĀZES JAUTĀJUMU IZPILDE

2.1 Tabulas izveide. FunkcijaIZVEIDOT TABULU:

IZVEIDOT TABULU Tabulas nosaukums (FieldName tips, FieldName tips)

Šī komanda datu bāzē izveido jaunu tabulu ar kolonnām (laukiem), kas definētas pēc to nosaukumiem (FieldName) un norādītajiem veidiem. Pēc tabulas izveidošanas varat tai pievienot ierakstus, kas sastāv no šajā komandā uzskaitītajiem laukiem.

Listing test_11.php. Programma, kas datu bāzē izveido jaunu tabulu:

iekļaut "config.php";//Izveidojiet savienojumu ar serveri un atlasiet datu bāzi

mysql_query("IZVEIDOT TABULU, ja neeksistē cilvēki

id INT AUTO_INCREMENT PRIMARY KEY,

or die("MySQL kļūda: ".mysql_error());


Šis skripts izveido jaunu tabulu cilvēkiem ar diviem laukiem. Pirmajā laukā ir tips INT (vesels skaitlis) un nosaukuma id. Otrais ir TEKSTA tips (teksta virkne) un nosaukuma nosaukums.

Ja tabula pastāv, darbosies konstrukcija vai die().

Ja ir norādīta izvēles klauzula ja neeksistē, tā norāda MySQL serverim, ka tam nevajadzētu ģenerēt kļūdas ziņojumu, ja datu bāzē jau pastāv tabula ar norādīto nosaukumu.

Mēs uzzinājām, kā izveidot savienojumu ar MySQL serveri, atlasīt datu bāzi, ar kuru strādāt, apguvām PHP funkciju vaicājumu nosūtīšanai uz MySQL serveri, iemācījāmies divus vienkāršus vaicājumus (tabulas izveide un dzēšana), kā arī uzzinājām, kā slēgt savienojumu.

Tagad mēs iedziļināsimies MySQL vaicājumos. Tātad sāksim!

Tabulas izveide - CREATE TABLE

Tagad mums ir tukša datu bāze, tajā nav nevienas tabulas. Tātad vispirms mēs izveidosim tabulu. Mēs jau zinām, kā to izdarīt no pirmās daļas.

Šeit ir skripta kods, kas izveidos mums nepieciešamo plāksni:

$ saite = mysqli_connect("localhost", "root", "", "testeris"); if (!$link) die("Kļūda"); $query = "IZVEIDOT TABULU lietotājus(pieteikšanās VARCHAR(20), parole VARCHAR(20))"; if (mysqli_query($link, $query)) echo "Tabula ir izveidota."; else echo "Tabula nav izveidota: ".mysqli_error(); mysqli_close($saite);

Mūsu tabulā ir tikai divi lauki: pieteikšanās un parole. Pagaidām mums vairāk nevajag, nesarežģīsim procesu.

Tātad tabula ir izveidota.

Rindu (ierakstu) pievienošana tabulai - INSERT

Tabulai var pievienot jaunu rindu, izmantojot SQL ievietošanas komandu. Šeit ir piemērs:

$ saite = mysqli_connect("localhost", "root", "", "testeris"); if (!$link) die("Kļūda"); $query = "INSERT INTO lietotājiem (pieteikšanās, parole) VALUE ("zeus", "pass123")"; if (mysqli_query($link, $query)) echo "Lietotājs pievienots."; else echo "Lietotājs nav pievienots: " . mysqli_error(); mysqli_close($saite);

SQL vaicājums sastāv no komandas INSERT INTO, datu bāzes nosaukumu lietotājiem, pēc tam lauku nosaukumiem iekavās, pēc tam vārda VALUE, kam seko iekavās pievienojamās vērtības. Vērtības ir liktas pēdiņās.

Pieprasījuma sintakse izskatās šādi:

INSERT INTO tabulas_nosaukums (1. kolonna, 2. kolonna) VALUE ("x1", "x2")

Nepieciešamas pēdiņas otrajās iekavās.

Vērtību vietā var būt mainīgie. Šeit ir piemērs:

$ saite = mysqli_connect("localhost", "root", "", "testeris"); if (!$link) die("Kļūda"); $login = "zeuss"; $parole = "pass123"; $query = "INSERT INTO lietotājiem (pieteikšanās, parole) VALUE ("$login", "$password")"; if (mysqli_query($link, $query)) echo "Lietotājs pievienots."; else echo "Lietotājs nav pievienots: " . mysqli_error(); mysqli_close($saite);

Protams, šim piemēram ir maz jēgas. Iesācējiem var būt noderīgi dzirdēt, ka šādi datubāzē tiek ierakstīti pieteikumvārdi un paroles, ko lietotāji sniedz reģistrācijas laikā. Šie dati tiek saglabāti mainīgajos lielumos un pēc pārbaudes tiek ierakstīti datu bāzē.

Ir ātrs veids, kā ievietot vairākas rindas ar vienu INSERT paziņojumu:

INSERT INTO lietotājiem (pieteikšanās vārds, parole) VALUE ("bob", "eee333"), ("Rooki", "12345"), ("magy", "olol88e8")

Kā redzat, uzskaitītie dati ir vienkārši atdalīti ar komatiem.

Tātad, izmantojot komandu INSERT, mēs uzzinājām, kā tabulai pievienot ierakstus. Uz priekšu.

Skatīt tabulu: SELECT komanda

Tagad mums ir lietotāju tabula, kurā ir rindas. Iepriekšējo skriptu var palaist vairākas reizes, un katru reizi tas tabulai pievienos rindu. Tagad mēs varam nezināt, cik rindu mums ir tabulā. Un es gribu zināt, ko mēs tajā esam ierakstījuši.

Lai izgūtu datus no tabulas, izmantojiet komandu SELECT SQL. Zīme * nozīmē, ka mēs pieprasām visus datus, tad aiz vārda FROM ierakstām tabulas nosaukumu, no kuras vēlamies iegūt datus.

Pieprasīsim visus datus no lietotāju tabulas:

$ saite = mysqli_connect("localhost", "root", "", "testeris"); if (!$link) die("Kļūda"); $query = "IZVĒLIES * NO lietotājiem"; $rezultāts = mysqli_query($saite, $vaicājums); if (!$result) echo "Radās kļūda: " . mysqli_error(); else echo "Dati saņemti"; mysqli_close($saite);

Funkcija mysqli_query() mums atgrieza vaicājuma rezultāta identifikatoru - mēs to ievietojām mainīgajā un vēlāk strādāsim ar to, izmantojot citas PHP funkcijas.

Pieprasīto ierakstu skaits

Noteiksim, cik rindu ir mūsu vaicājumā? Es izpildīju skriptu ieraksta pievienošanai tabulai, es neatceros, cik reizes, un tagad es nezinu, cik rindu ir manā tabulā.

Lai noteiktu rindu skaitu vaicājuma rezultātā, izmantojiet funkciju mysqli_num_rows(). Šai funkcijai tiek nodots vaicājuma rezultāta identifikators, un tā atgriež ierakstu skaitu.

$ saite = mysqli_connect("localhost", "root", "", "testeris"); if (!$link) die("Kļūda"); $query = "IZVĒLIES * NO lietotājiem"; $rezultāts = mysqli_query($saite, $vaicājums); if (!$result) echo "Radās kļūda: " . mysqli_error(); else echo "Dati saņemti"; $skaits = mysqli_num_rows($rezultāts); echo "Kopā rindas tabulā: $count."; mysqli_close($saite);

Ja mums ir jānoskaidro ierakstu skaits tabulā, tad iepriekš minētā metode nav vispiemērotākā. Šeit mēs uzzinājām vaicājumā atrasto ierakstu skaitu, bet tabulā ierakstu skaits tiek meklēts atšķirīgi.

Ierakstu skaits tabulā SELECT COUNT(*)

Lai noskaidrotu ierakstu skaitu tabulā, var izmantot komandu SELECT COUNT(*) FROM tabulas_nosaukums.

$ saite = mysqli_connect("localhost", "root", ""); if (!$link) die("Kļūda"); mysqli_select_db("testeris"); $query = "IZVĒLIES * NO lietotājiem"; $rezultāts = mysqli_query($saite, $vaicājums); if (!$result) echo "Radās kļūda: " . mysqli_error(); else echo "Dati saņemti."; $skaits = mysqli_fetch_row($rezultāts); echo "Kopā rindas tabulā: $count."; mysqli_close($saite);

Lūdzu, ņemiet vērā, ka šeit mēs izmantojām jauno PHP funkciju mysqli_fetch_row(), lai iegūtu datus. Šī funkcija atgriež vaicājuma rezultāta rindu vienkārša masīva veidā; mūsu gadījumā rindā ir viens lauks un tam ir indekss 0.

Vaicājuma rezultāta skatīšana cilpā

Pēc SQL vaicājuma izpildes ar komandu SELECT un vaicājuma rezultāta ID iegūšanas, PHP rezultātu ierakstu kopā izveido iekšējo rādītāju. Šis rādītājs automātiski pāriet uz nākamo ierakstu pēc piekļuves pašreizējam ierakstam. Šis mehānisms padara ļoti ērtu cilpu cauri SELECT vaicājuma rezultātu kopai.

PHP ir vairākas funkcijas, ar kurām jūs varat iegūt masīvu, kas sastāv no tā laukiem katrai iegūtā vaicājuma rindai. Piemēram, ņemsim funkciju mysqli_fetch_row(). Šī funkcija tiek nodota pieprasījuma identifikatoram un atgriež masīvu. Tātad cilpā tiek skatīts viss vaicājuma rezultāts, un, kad tiek sasniegts vaicājuma rezultāta beigas, funkcija atgriezīs false .

Tātad, mēs pieprasām visus datus no lietotāju tabulas (SELECT * FROM lietotājiem).


"; while ($row = mysqli_fetch_row($result)) ( echo "Pieteikšanās: $rinda. Parole: $rinda.
"; ) mysqli_close($saite);

Funkcija mysqli_fetch_row() atgriež vienkāršu masīvu. Katrā cilpas iterācijā mēs saņemsim masīvu ar rindu no tabulas, kuras laukiem varēsim piekļūt, norādot skaitlisko indeksu.

To pašu var izdarīt, izmantojot funkciju mysql_fetch_assoc(), tā atgriež asociatīvo masīvu.

$ saite = mysqli_connect("localhost", "root", ""); if (!$link) die("Kļūda"); mysqli_select_db("testeris"); $rezultāts = mysqli_query($saite, "SELECT * FROM lietotājiem"); if (!$result) echo "Radās kļūda: " . mysqli_error(); else echo "Saņemtie dati.
"; while ($row = mysqli_fetch_assoc($result)) ( echo "Pieteikšanās: $rinda. Parole: $rinda.
"; ) mysqli_close($saite);

Ir arī funkcijas mysqli_fetch_array() - atgriež jebkura veida masīvu, un mysqli_fetch_object () - atgriež objektu.

SELECT DISTINCT vaicājums — unikālas lauka vērtības

Izveidosim jaunu tabulu:

$ saite = mysqli_connect("localhost", "root", ""); if (!$link) die("Kļūda"); mysqli_select_db("testeris"); // dzēst esošo tabulu mysqli_query($link, "DROP TABLE users"); // izveidot jaunu tabulu $query = "IZVEIDOT TABULU lietotāji(vārds VARCHAR(20), uzvārds VARCHAR(20), vecums TINYINT NEPAREDZĒTS)"; if (mysqli_query($link, $query)) echo "Tabula ir izveidota.
"; else echo "Tabula nav izveidota: " . mysqli_error(); // funkcija ierakstu pievienošanai tabulai funkcija add_new_line($link, $query) ( if (!mysqli_query($link, $query)) echo "Lietotājs nav Pievienots: " . mysqli_error(); ) // pievienot ierakstus add_new_line($link, "INSERT INTO lietotāji (vārds, uzvārds, vecums) VALUE ("Max", "Jayson", "33")"); add_new_line($link , "INSERT INTO lietotāji (vārds, uzvārds, vecums) VALUE ("Bob", "Freeman", "26")"); add_new_line($link, "INSERT INTO lietotāji (vārds, uzvārds, vecums) VALUE ("Sāra") , "Lopes", "65")"); add_new_line($saite, "INSERT INTO lietotāji (vārds, uzvārds, vecums) VALUE" ("Serg", "Pupin", "29")"); add_new_line($saite, " INSERT INTO lietotāji (vārds, uzvārds, vecums) VALUE ("Serg", "Borman", "43")"); add_new_line($link, "INSERT INTO lietotāji (vārds, uzvārds, vecums) VALUE ("Maks.", " Lopes", "21")"); // parādīt tabulas saturu pārlūkprogrammā $result = mysqli_query($link, "SELECT * FROM users"); if (!$result) echo "Radās kļūda: " . mysqli_error(); else echo "Saņemti dati.
"; while ($row = mysqli_fetch_assoc($result)) ( echo "Vārds: $rinda. Uzvārds: $rinda. Vecums: $rinda.
"; ) mysqli_close($saite);

Tātad, mums ir jauna, sarežģītāka tabula ar unikāliem ierakstiem. Tagad paskatīsimies, cik vārdu mums ir datu bāzē.

$ saite = mysqli_connect("localhost", "root", ""); if (!$link) die("Kļūda"); mysqli_select_db("testeris"); $rezultāts = mysqli_query($saite, "SELECT ATŠĶIRĪGU vārdu NO lietotājiem"); echo "Kopā vārdi: " . mysqli_num_rows($result)."
"; echo "Vārdu saraksts:
"; while ($nosaukums = mysqli_fetch_row($result)) ( echo "$name
"; ) mysqli_close($saite);

SQL vaicājums "SELECT DISTINCT name FROM users" atgrieza rezultātu ar visiem unikālajiem nosaukumiem mūsu tabulā. Katrs unikālais nosaukums jaunā vaicājuma rezultāta rindā.

Rezultātu šķirošana - PĒC PASŪTĪT

Pievienojot SQL vaicājumam komandu ORDER BY, mēs sakārtojam vaicājuma rezultātu augošā secībā (cipari un burti alfabētiskā secībā). Šeit ir piemērs, kurā varat salīdzināt parastu vaicājumu un vaicājumu, kas sakārtots pēc vecuma (vecuma lauks).



"; ) echo "Kārtot pēc vecuma:
"; $result = mysqli_query($saite, "SELECT * FROM users ORDER BY BY"); while ($line = mysqli_fetch_row($result)) ( echo "Vārds: $line. Uzvārds: $line. Vecums: $ līniju.
"; ) mysqli_close($saite);

Vecuma lauku komandā ORDER BY var aizstāt ar nosaukuma lauku un redzēt rezultātu.

Lai vaicājuma rezultātu kārtotu apgrieztā secībā, izmantojiet komandu ORDER BY vecuma DESC.

Atbilstošs nosacījums - KUR

Pievienojot SQL vaicājumam komandu WHERE, mēs vaicāsim tikai tos ierakstus, kas atbilst nosacījumam. Piemēram, iesniegsim pieprasījumu personām, kas jaunākas par 30 gadiem.

Lai to izdarītu, mēs izmantojam SQL vaicājumu "SELECT * FROM users WHERE vecums

$ saite = mysqli_connect("localhost", "root", ""); if (!$link) die("Kļūda"); mysqli_select_db("testeris"); echo "Cilvēki, kas jaunāki par 30:
"; $result = mysqli_query($link, "SELECT * FROM lietotājiem WHERE vecums<30"); while ($line = mysqli_fetch_row($result)) { echo "Имя: $line. Фамилия: $line. Возраст: $line.
"; ) mysqli_close($saite);

Mēs varam arī uzreiz sakārtot rezultātus augošā vecuma secībā:
" SELECT * FROM lietotājiem WHERE vecums<30 ORDER BY age ".

Ja mēs veicam vaicājumu " SELECT vārdu FROM lietotājiem WHERE vecums<30 ORDER BY age ", то в результате нам вернут только значения поля "name", но они также будут отсортированы по age.

Mēs varam jautāt divu lauku vērtības: " SELECT vārds, vecums FROM lietotājiem WHERE vecums

Tagad pieprasīsim visus lietotājus ar nosaukumu "Max".

$ saite = mysqli_connect("localhost", "root", ""); if (!$link) die("Kļūda"); mysqli_select_db("testeris"); echo "All Maxes:
"; $rezultāts = mysqli_query($link, "SELECT * FROM users WHERE name = "Max""); while ($line = mysqli_fetch_row($result)) ( atbalss "Vārds: $line. Uzvārds: $line. Vecums: $line.
"; ) mysqli_close($saite);

Un vēl viens vaicājuma piemērs - tas atlasīs tikai vārdus no lietotāju tabulas, visu, izņemot Max.

SELECT name FROM users WHERE name!="Max"

Tas ir viss WHERE vaicājumam.

Ierobežojošie ieraksti — LIMIT

Pievienojot SQL vaicājumam komandu LIMIT, mēs ierobežosim rezultāta lielumu.

Vaicājums, kas atgriež pirmos trīs ierakstus, ir: " SELECT * FROM users LIMIT 3 ". Apskatīsim, kā tas darbojas:

$ saite = mysqli_connect("localhost", "root", ""); if (!$link) die("Kļūda"); mysqli_select_db("testētājs"); echo "Tabulas saturs:
"; $rezultāts = mysqli_query($link, "SELECT * FROM users"); while ($line = mysqli_fetch_row($result)) (echo "Vārds: $line. Uzvārds: $line. Vecums: $line.
"; ) atbalss"

Pirmie trīs ieraksti:
"; $result = mysqli_query($link, "SELECT * FROM users LIMIT 3"); while ($line = mysqli_fetch_row($result)) ( echo "Vārds: $line. Uzvārds: $line. Vecums: $line .
"; ) atbalss"

Otrie trīs ieraksti:
"; $result = mysqli_query($link, "SELECT * FROM users LIMIT 3, 3"); while ($line = mysqli_fetch_row($result)) ( echo "Vārds: $line. Uzvārds: $line. Vecums: $rinda.
"; ) mysqli_close($saite);

Arī šeit mēs izmantojām vaicājumu: "SELECT * FROM users LIMIT 3, 3". Otrais trīskāršais norāda vaicājuma rezultāta nobīdi.

Pieskaņojuma raksts - LIKE

SQL valoda atbalsta vienkāršas veidnes. Lai to izdarītu, izmantojiet komandu LIKE un norādiet modeli, izmantojot simbolu %.

Šeit ir vaicājuma piemērs, kas atgriezīs visus ierakstus, kuru nosaukumi sākas ar burtu S.

SELECT * FROM lietotājiem WHERE vārds LIKE "S%"

Es pārbaudu pieprasījumu:

$ saite = mysqli_connect("localhost", "root", ""); if (!$link) die("Kļūda"); mysqli_select_db("testētājs"); echo "Tabulas saturs:
"; $rezultāts = mysqli_query($link, "SELECT * FROM users"); while ($line = mysqli_fetch_row($result)) (echo "Vārds: $line. Uzvārds: $line. Vecums: $line.
"; ) atbalss"

Vārdi, kas sākas ar S:
"; $result = mysqli_query($link, "SELECT * FROM users WHERE name LIKE "S%""); while ($line = mysqli_fetch_row($result)) ( echo "Vārds: $line. Uzvārds: $line Vecums: $line.
"; ) mysqli_close($saite);

Šeit ir vaicājuma piemērs, kas atgriezīs visus ierakstus, kuru uzvārdi beidzas ar burtu s.

SELECT * FROM lietotājiem WHERE vārds LIKE "%s"

Nosacījums izpildīts - IN

Šis vaicājums, izmantojot komandu IN, atgriezīs tikai tās rindas, kas precīzi atbilst nosacījumam.

Piemēram, mūs interesē cilvēki vecumā no 21, 26 un 33 gadiem.

SELECT * FROM lietotājiem WHERE vecums IN (21,26,33)

Es pārbaudu pieprasījumu:

$ saite = mysqli_connect("localhost", "root", ""); if (!$link) die("Kļūda"); mysqli_select_db("testētājs"); echo "Tabulas saturs:
"; $rezultāts = mysqli_query($link, "SELECT * FROM users"); while ($line = mysqli_fetch_row($result)) (echo "Vārds: $line. Uzvārds: $line. Vecums: $line.
"; ) atbalss"

Cilvēki ar nepieciešamo vecumu (21, 26, 33):
"; $result = mysqli_query($link, "SELECT * FROM users WHERE age IN (21, 26, 33)"); while ($line = mysqli_fetch_row($result)) ( echo "Vārds: $line. Uzvārds : $ line.Vecums: $ line.
"; ) mysqli_close($link);

Maksimālā un minimālā vērtība kolonnā

Lietotāju tabulā atlasa maksimālo vecuma vērtību.

ATLASĪT maks.(vecumu) NO lietotājiem

Šis vaicājums atlasa datus no lietotāju tabulas, izmantojot nosaukumu un vecuma laukus, kur vecumam ir minimālā vērtība.

ATLASĪT vārdu, minimālo vecumu NO lietotājiem

Notiek ieraksta atjaunināšana - ATJAUNINĀJUMS

Noteiksim Max Lopes vecumu uz 15 gadiem. Tas tiek darīts ar MySQL vaicājumu:

ATJAUNINĀT lietotājus SET vecums = "15" WHERE name = "Max" UN uzvārds = "Lopes"

Lūdzu, ņemiet vērā jauno komandu UN (un angļu valodā nozīmē “un”) vaicājumā. Ja nenorādīsim uzvārdu, tad tabulā visiem Maxiem tiks noteikts vecums 15 gadi.

Varat atjaunināt divus vai vairākus laukus vienā rindā ar vienu vaicājumu. Tas tiek darīts šādi:

ATJAUNINĀT lietotājus SET vecums = "18", uzvārds = "Coocker" WHERE id = "3"

Mūsu tabulā nav id lauka, tāpēc šis vaicājums tajā nedarbosies. Bet mēs noteikti apgūsim šo lauku, kurā ir unikāli rindu numuri.

Ieraksta dzēšana - DZĒST

MySQL datu bāzes vaicājums ieraksta dzēšanai:

DZĒST NO lietotājiem, WHERE id = "10"

Atkal, mūsu tabulā nav id lauka. Bet mēs varam izņemt no tā visus cilvēkus, kas jaunāki par 18 gadiem.

DZĒST NO lietotājiem WHERE vecuma< "18"

Dzēst tabulu — NOMET TABULU

MySQL datu bāzes vaicājums, kas dzēš visu lietotāju tabulu:

DROP TABLE lietotājus

Dzēst kolonnu — MAINĪT TABULU ... DROP ...

Dažreiz jums var būt nepieciešams noņemt kolonnu no tabulas, piemēram, noņemiet vecuma sleju no lietotājiem:

ALTER TABLE lietotāju DROP vecums

Šis MySQL vaicājums neatgriezeniski un neatgriezeniski izdzēsa kolonnu.

Pievienot kolonnu - ALTER TABLE ... ADD ...

Dažreiz jums var būt nepieciešams pievienot kolonnu esošai tabulai, piemēram, pievienosim vecuma sleju atpakaļ lietotāju tabulai:

ALTER TABLE lietotājus PIEVIENOT vecumu TINYINT UNSIIGNED

Notiek kolonnas pārdēvēšana — MAINĪT TABLU ... MAINĪT ...

Dažreiz jums var būt nepieciešams pārdēvēt kolonnu, piemēram, pārdēvējiet vecuma sleju uz vozrast. Mēs to darām šādi:

ALTER TABLE lietotāji MAINĪT vecumu, vecumu TINYINT NEPARAKSTS

Šis MySQL vaicājums kolonnas vecumu pārdēvēja par vozrast ar datu tipu TINYINT UNIGNED.

Notiek tabulas pārdēvēšana — PĀRDĒDĒT TABLE ... UZ ...

Dažreiz jums var būt nepieciešams pārdēvēt tabulu:

PĀRDĒVĒT TABLE lietotājus UZ cilvēkiem

Datu bāzes noņemšana — DROP DATABASE

Šis vaicājums var izdzēst datu bāzi ar nosaukumu testētājs:

DROP DATABASE testeris

Datu bāzes izveide - CREATE DATABASE

Šis vaicājums izveido datu bāzi ar nosaukumu testētājs:

IZVEIDOT DATU BĀZES testeri

Šis pieprasījums darbojas man Denverā, taču mitināšanas laikā tas var nedarboties, ja datu bāzes lietotājam nav tiesību veikt dzēšanu.

Rezultāti

Tātad, šajā daļā mēs iepazināmies ar vaicājumiem MySQL. Daudzi mūsu pārbaudītie vaicājumi mums bieži nav noderīgi darba procesā, taču mums tie ir jāzina, jo tie noteikti noderēs skriptu izstrādes procesā.

Daži pieprasījumi parasti tiek veikti tikai no phpMyAdmin (piemēram, datu bāzu izveide un dzēšana).

Strādājot ar vietnēm, parasti tabulai ir jāpievieno ieraksts, jārediģē ieraksts vai jāizdzēš ieraksts no tabulas.

Nākamais solis ir uzzināt par MySQL datu veidiem.