Folosind php...

Crearea unei conexiuni în moduri diferite:

1) modul de modă veche de a vă conecta la MySQL:

$conn=mysql_connect($db_hostname, $db_username, $db_password) sau die ("Fără conexiune la server");
mysql_select_db($db_database,$conn) sau die ("Nu, nu a fost posibilă conectarea la baza de date");

Explicații ale variabilelor de mai jos.

Sunt utilizate următoarele funcții:

  • mysql_connect()- sa se conecteze la server;
  • mysql_select_db()- să se conecteze la baza de date;

În același timp, verificăm în mod constant erorile în acest fel: sau murim („Eroarea este așa și așa”); - tradus ca sau die cu o astfel de eroare - pentru a afla imediat unde este eroarea.

config.php

// variabile pentru conectarea la baza de date
$host = "localhost"; /gazdă
$nume utilizator = „rădăcină”; // parola pentru conectarea la baza de date
$parolă = ""; // parola pentru conectarea la baza de date - pe computerul local poate fi goala.
$database_name = "my-dolgi"; // numele bazei de date

// mod vechi de conectare la baza de date
mysql_connect($gazdă, $nume utilizator, $parolă) sau die("Nu se poate conecta crearea conexiunii");

// selectează baza de date. Dacă există o eroare, ieșire
mysql_select_db($database_name) sau die(mysql_error());

index.php

require_once "config.php";


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



";


while ($rând = mysql_fetch_assoc($rezultat)) (
";
}


mysql_free_result($rezultat);

// Închideți conexiunea
mysql_close();

2) Un stil procedural mai progresiv - conectarea la baza de date folosind mysqli:

Aceasta metoda:

  1. convenabil;
  2. de până la 40 de ori mai rapid;
  3. securitate sporită;
  4. există caracteristici și funcții noi;

Un exemplu de conectare la o bază de date în PHP cu o selecție dintr-un tabel

config.php

// conexiuni la baza de date
$link = mysqli_connect("localhost", "nume utilizator", "parolă", "name-database"); // aici introducem datele dvs. direct: nume de utilizator, parola și numele bazei de date, primul câmp este de obicei localhost

// eroare de conectare la ieșire
dacă (!$link) (
echo "Eroare de conectare la baza de date. Cod de eroare: " . mysqli_connect_error();
Ieșire;
}

Vă rugăm să rețineți - mysqli este folosit peste tot, nu mysql!!!

index.php

require_once "config.php";

// Execută cererea. Dacă există o eroare, o afișăm
dacă ($rezultat = mysqli_query($link,„SELECT Name, Money FROM Debt ORDER BY Money DESC LIMIT 5”)) (

Echo „Cui îi datorez în ordine descrescătoare:

";

// Preluarea rezultatelor interogării
în timp ce ($rând = mysqli_fetch_assoc($rezultat)) (
echo $row[„Nume”] . „cu datorii”. $row[„Bani”] . "ruble.
";
}

// eliberând memoria folosită
mysqli_free_result($rezultat);

// Închideți conexiunea
mysqli_close($link);
}

După cum puteți vedea, unele puncte s-au schimbat (în cursive).

3) Metodă orientată pe obiecte de conectare la o bază de date MySQL - folosind metode și clase:

Contra: Mai complex și mai puțin susceptibil la erori.

Pro: concizie și comoditate pentru programatori experimentați.

$conn = new mysqli($db_hostname, $db_username, $db_parola, $db_database);
if($conn->connect_errno)(
die($conn->connect_error);
) else (echo „Conexiunea la baza de date a fost stabilită cu succes”;)

aici, în principiu, totul este intuitiv:

  • $db_hostname este gazdă(mai ales localhost),
  • $db_database - nume db;
  • $db_username și $db_password - numele de utilizator și respectiv parola!

Un exemplu de conectare la o bază de date în stil php OOP cu eșantionare dintr-un tabel

config.php

// conexiuni la baza de date
$mysqli = mysqli nou("localhost", "nume utilizator", "parolă", "nume-bază de date"); // aici introducem datele dvs. direct: nume de utilizator, parola și numele bazei de date, primul câmp este de obicei localhost

// eroare de conectare la ieșire
if ($mysqli->connect_error) (
die ("Eroare de conectare DB: (" . $mysqli->connect_errno . ") " . mysqli_connect_error) ;
}

Vă rugăm să rețineți - mysqli este folosit peste tot, nu mysql!!! și spre deosebire de metoda anterioară, apar săgeți „->”, care indică faptul că acesta este un stil OOP.

index.php

require_once "config.php";

// Execută cererea. Dacă există o eroare, o afișăm
dacă ($rezultat = $ mysqli->interogare("SELECT Name, Money FROM Debt ORDER BY Money DESC LIMIT 5")) (

Echo „Cui îi datorez în ordine descrescătoare:

";

// Preluarea rezultatelor interogării
în timp ce ($rând = $rezultat-> fetch_assoc()) {
echo $row[„Nume”] . „cu datorii”. $row[„Bani”] . "ruble.
";
}

// eliberând memoria folosită
$rezultat->close();

// Închideți conexiunea
$mysqli->close();
}

Sarcina ta este să găsești diferențele.

4) Comunicarea cu baza de date folosind PDO:

La conectarea la o bază de date MySQL, se folosesc expresii pregătite (folosind metoda prepare) și, ca urmare, o securitate mai mare și crește foarte mult performanța.

fișier de configurare din metoda anterioară! - la fel

index.php

// Stil PDO pentru comunicarea cu MySQL
if ($stmt = $mysqli->prepare("SELECT Name, Voney FROM Dolg ORDER BY Money< ? LIMIT 5")) {

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

//începe execuția
$stmt->execute();

// Declararea variabilelor pentru valorile pregătite
$stmt->bind_result($col1, $col2);

Echo „Cui îi datorez în ordine descrescătoare:

";

// Preluarea rezultatelor interogării
while ($stmt->fetch()) (
echo $col1 . „cu datorii”. $col2 . "ruble.
";
}

// eliberând memoria folosită
$stmt->close();

// Închideți conexiunea
$mysqli->close();

După cum puteți vedea, acest lucru este mult mai complicat și trebuie să studiați DOP - acesta este un subiect separat.

Îmi amintesc de acele vremuri când încă nu știam ce este mysqlși a căutat adesea astfel de articole pe Internet. Dar din anumite motive au fost rareori găsite. Acum am decis să postez unul, astfel încât să existe articole utile despre mysqlȘi php mai este unul. Voi încerca să scriu totul într-o limbă accesibilă.

începerea cu mysql și php

Deci, mai întâi avem nevoie de un server local pentru a putea rula scripturi phpși conectați-vă la baza de date (în continuare o voi numi DB, care înseamnă „bază de date”). Dacă nu aveți încă un server local, ar trebui să citiți mai întâi Instalare și configurare gazdă locală, apoi începeți să studiați baza de date mysqlși DBMS-ul său (instrument de gestionare a bazelor de date).

Dacă aveți deja acest server, atunci faceți asta. În primul rând, vreau să vă prezint SGBD PhpMyAdmin, vă permite să gestionați (adăugați, ștergeți, modificați) înregistrările din baza de date.

Aceasta este pagina principală DBMS PhpMyAdmin. De aici vă puteți crea propria bază de date și puteți stoca în ea înregistrările necesare. Acest lucru este foarte convenabil atunci când creați site-uri web, deoarece informațiile sunt structurate și puteți obține foarte rapid orice înregistrare din baza de date.

După cum am menționat deja, prima parte a articolului, introducerea la mysqlȘi phpmyadmin. Cred că acum înțelegeți ce este mysql și putem începe să studiem funcționalitatea phpmyadmin. Pentru a începe, va trebui să creăm baza de date în sine. Ea va avea propriul ei nume, după care o vom căuta apoi.

Iată structura generală a bazei de date:

Pentru a crea o bază de date, introduceți în câmpul de introducere sub linia „Creați o nouă bază de date” (pe pagina principală a PhpMyAdmin) orice nume (nu chirilic!) pentru viitoarea bază de date. Voi crea o bază de date numită "baza". Acum, urmând diagrama structurii bazei de date, trebuie să facem un tabel. Pentru a face acest lucru, după crearea bazei de date, veți avea următoarea fereastră:

Aici creez un tabel numit utilizatori și 3 câmpuri în el. În continuare, phpmyadmin ne va cere să setăm structura pentru fiecare câmp:

Aici, în coloana „Field” trebuie să indicați numele, în „Type” indicăm tipul de date care vor fi stocate acolo (INT este un număr, VARCHAR este un șir sau text mic(!)). În „Avansat” indicăm câmpului numit „id” parametrul „auto_increament”, ceea ce înseamnă că va crește de fiecare dată când introduceți orice date și îi setăm parametrul „Cheie primară” (puneți un cerc), asta înseamnă că conform primei coloane putem identifica unic câmpul.

„Identificați unic câmpul” înseamnă că, chiar dacă numele și prenumele sunt aceleași, coloana „id” va avea valori diferite (deoarece este incrementată automat cu câte una de fiecare dată).

Acum faceți clic pe „Salvați”. Astfel, am creat tabelul utilizatori, în care putem stoca numele și prenumele (nu este nevoie să inserăm id-ul, mysql va face totul pentru noi), în baza de date utilizatori. Am creat un tabel pentru a stoca înregistrările. Cum să le introduci acolo? Citiți mai jos 😉

Selectați „Inserare” din meniu și scrieți valorile necesare în câmpurile obligatorii. Acum, cum să ștergeți sau să modificați valorile din baza de date mysql cu SGBD-ul PhpMyAdmin... Pentru a șterge, mergeți pur și simplu la meniul „Răsfoiți” și faceți clic pe crucea roșie de lângă intrare:

Și pentru a edita, faceți clic pe creion și înlocuiți câmpurile necesare. Ei bine, acesta este sfârșitul lecției. Acum puteți gestiona baza de date mysql folosind PhpMyAdmin. În lecția următoare, vă voi învăța cum să stocați, să preluați, să ștergeți și să actualizați datele din baza de date folosind php. Este foarte convenabil și practic.

Lucrul cu baza de date mysql din php

Deci, mai întâi trebuie să învățați cum să vă conectați la o bază de date deja creată. Pentru a face acest lucru, utilizați următorul cod:

În codul de mai sus, m-am conectat la serverul localhost folosind datele de conectare rădăcină care nu necesita o parola (deci nu o specificam). După conectarea la baza de date, putem efectua toate operațiunile pe care le-am efectuat în SGBD-ul phpmyadmin. Adică inserarea, ștergerea, modificarea și preluarea diverselor informații. Acum punct cu punct:

Inserarea înregistrărilor într-o bază de date SQL în php

$query="INSERT INTO `table` (`specificați câmpul`,`specificați câmpul`) VALORI ("orice valoare","orice valoare""); $rezultat=mysql_query($interogare); if($rezultat==true) ( ​​echo „Succes!”; ) else ( echo „Eroare!
„.mysql_error(); )

Adică inserarea este realizată de funcția INSERT. Dacă totul a mers bine, atunci mysql va returna rezultatul adevărat, sau altfel - false.

Puteți specifica câte câmpuri doriți, principalul lucru este că toate există în baza de date. Adică, de exemplu, există un tabel în care există câmpuri „nume”, „nume” și „oraș”. Pentru a introduce valori în el vom folosi următorul cod:

$query="INSERT INTO `users` (`nume`,`prenume`,`oraș`) VALORI ("Ruslan","Huzin","Kokshetau""); $rezultat=mysql_query($interogare); if($rezultat==true) ( ​​echo „Succes!”; ) else ( echo „Eroare!
„.mysql_error(); )

Ștergerea înregistrărilor din baza de date SQL în php

Ștergerea se efectuează utilizând funcția DELETE. Codul pentru aceasta ar fi cam așa:

$query="ȘTERGERE FROM `utilizatori` WHERE `name`="Ruslan" "; $rezultat=mysql_query($interogare); if($rezultat==true) ( ​​echo „Succes!”; ) else ( echo „Eroare!
„.mysql_error(); )

Adică vom șterge din tabelul utilizatorilor toate rândurile (sau unul) în care coloana nume este egală cu valoarea Ruslan.

Modificarea valorilor în baza de date MySQL în php

De asemenea, putem face modificări la intrările existente în tabel. De exemplu, trebuie să înlocuim valoarea coloanei nume într-un rând în care coloana numelui are valoarea Huzin. Pentru a face acest lucru, rulăm următorul cod:

$query="UPDATE `users` SET `name`="numele meu" WHERE `surname`="Huzin" "; $rezultat=mysql_query($interogare); if($rezultat==true) ( ​​echo „Succes!”; ) else ( echo „Eroare!
„.mysql_error(); )

Obținerea valorilor din baza de date

Acum vine partea distractivă. Din moment ce am notat ceva, ar trebui să-l recuperăm, nu? De exemplu, trebuie să obținem întregul rând din tabelul utilizatori unde coloana nume este egală cu Ruslan. Pentru a face acest lucru, avem nevoie de un cod ușor diferit de cel din primele exemple. Iată-l:

$query="SELECT * FROM WHERE `name`="Ruslan" "; $rezultat=mysql_query($interogare); if($rezultat==true) ( ​​echo „Succes!”; ) else ( echo „Eroare!
".mysql_error(); ) $data=mysql_fetch_array($result); /* Acum variabila stochează date din tabel */

Aici aveam nevoie de încă o funcție pentru a scrie datele selectate într-o variabilă (matrice) în php. Pentru a accesa linia selectată scriem astfel:

$data[„numele coloanei”]

adică pentru a obține numele de familie din linia selectată (unde numele era Ruslan), trebuie să scriem ca rezultat:

echo $date[„nume”];

Și atunci când selectați dintr-un tabel, au scris SELECT * , acest asterisc înseamnă că trebuie să selectați toate coloanele din rând. Dacă avem nevoie, de exemplu, să selectăm doar prenume, scriem SELECT `prenume`. Și pentru a selecta mai multe rânduri din tabel simultan, veți avea nevoie și de o buclă pentru a le afișa. Acesta este cazul dacă, de exemplu, există mai multe rânduri cu coloana Ruslan. Iată codul:

$query="SELECT * FROM WHERE `name`="Ruslan" "; $rezultat=mysql_query($interogare); while($date=mysql_fetch_array($rezultat)) ( echo $data["nume"]."
„.$date[„nume”].”


"; }

Acum vor fi afișate pe ecran toate rândurile a căror coloană de nume este egală cu valoarea Ruslan.

Acum v-ați familiarizat cu funcțiile de control de bază baza de date mysql direct din script php.

MySQL este un tip de bază de date relațională. MySQL este un server la care diverși utilizatori se pot conecta.

Când vă conectați la Internet, vă introduceți numele de utilizator și parola, precum și numele serverului la care vă conectați? Când lucrați cu MySQL, se folosește același sistem.

Încă un lucru: ce este o bază de date relațională? Mijloace relaționale bazate pe tabele. Faimosul editor de foi de calcul Microsoft, Excel, este de fapt un editor de baze de date relaționale.

Conectarea la serverul MySQL

Pentru a vă conecta la un server MySQL în PHP, utilizați funcția mysqli_connect(). Această funcție are trei argumente: numele serverului, numele de utilizator și parola.

Funcția mysqli_connect() returnează identificatorul de conexiune, acesta este stocat într-o variabilă și ulterior folosit pentru a lucra cu baze de date.

Cod de conectare la server MySQL:

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

În acest caz, lucrez la o mașină locală pe Denwere, deci numele de gazdă este localhost, numele de utilizator este root și nu există nicio parolă.

De asemenea, conexiunea trebuie să fie închisă după terminarea lucrului cu MySQL. Funcția mysqli_close() este folosită pentru a închide conexiunea. Să extindem exemplul:

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

Aici am verificat identificatorul conexiunii pentru adevăr; dacă este ceva în neregulă cu conexiunea noastră, atunci programul nu va fi executat, funcția die() își va opri execuția și va afișa un mesaj de eroare în browser.

Erori de conectare

Următoarele funcții sunt utilizate pentru a verifica conexiunea:

  • mysqli_connect_errno() - returnează codul de eroare al ultimei încercări de conectare. Dacă nu există erori, returnează zero.
  • mysqli_connect_error() - returnează o descriere a ultimei erori de conectare la serverul MySQL.
define("HOST", "localhost"); define("DB_USER", "rădăcină"); define("DB_PASSWORD", ""); define("DB", "tester"); $link = mysqli_connect(HOST, DB_USER, DB_PASSWORD, DB); /* verificați conexiunea */ if (mysqli_connect_errno()) ( printf("Nu se poate conecta: %s\n", mysqli_connect_error()); ieșire(); ) else ( printf("Conexiunea reușită: %s\n" , mysqli_get_host_info($link)); )

Funcția mysqli_get_host_info() returnează un șir care conține tipul de conexiune utilizat.

De asemenea, rețineți că, folosind comanda define, am salvat toți parametrii de conexiune ca constante. Când scrieți proiecte mari și există multe fișiere care se conectează la serverul MySQL, este convenabil să stocați parametrii de conexiune într-un fișier separat și să îl introduceți folosind funcția include sau require.

Selectarea unei baze de date

Un server MySQL poate avea mai multe baze de date. În primul rând, trebuie să selectăm baza cu care trebuie să lucrăm. În PHP, există un alt parametru pentru aceasta în funcția mysqli_connect() - numele bazei de date.

L-am creat pe computerul meu prin phpMyAdmin cu testerul de nume. Să ne conectăm la el:

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

Deci, am ales o bază de date cu care să lucrăm. Dar după cum știm, o bază de date relațională constă din tabele, iar baza noastră de date nu are încă tabele. Baza de date este creată goală, fără tabele. Tabelele trebuie adăugate separat. Acum să adăugăm un tabel folosind PHP.

Creați un tabel

În numele bazelor de date MySQL, partea SQL înseamnă Structured Query Language, care se traduce ca un limbaj de interogare structurat. Vom scrie interogări în SQL și le vom trimite către serverul MySQL din programul PHP.

Pentru a crea un tabel trebuie doar să lansăm comanda CREATE TABLE. Să creăm un tabel numit utilizatori în coloanele cărora vor fi stocate login-urile (coloana login) și parolele (coloana parole) ale utilizatorilor.

$query = "CREATE TABLE users(login VARCHAR(20), password VARCHAR(20))";

În acest cod, am atribuit variabilei $query un șir de text care reprezintă o interogare SQL. Creăm un tabel numit utilizatori care conține două coloane autentificare și parolă, ambele de tip de date VARCHAR(20). Despre tipurile de date vom vorbi mai târziu, deocamdată voi reține doar că VARCHAR(20) este un șir cu o lungime maximă de 20 de caractere.

Pentru a trimite interogarea noastră către serverul MySQL folosim funcția PHP mysqli_query(). Această funcție returnează un număr pozitiv dacă operația a avut succes și fals dacă a apărut o eroare (sintaxa cererii este incorectă sau programul nu are permisiunea de a executa cererea).

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Eroare"); $query = "CREATE TABLE users(login VARCHAR(20), password VARCHAR(20))"; mysqli_query($interogare); mysqli_close($link);

Interogarea SQL nu trebuie să fie scrisă într-o variabilă; poate fi scrisă direct ca argument pentru funcția mysql_query(). Doar face codul mai lizibil.

Acest script are un dezavantaj - nu trimite nimic în browser. Să adăugăm un mesaj:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Eroare"); $query = "CREATE TABLE users(login VARCHAR(20), password VARCHAR(20))"; if (mysqli_query($query)) echo "Tabelul a fost creat."; else echo "Tabelul nu a fost creat."; mysqli_close($link);

Dacă rulăm din nou acest script, vom vedea un mesaj în browser: „Tabelul nu a fost creat”. Faptul este că tabelul a fost creat în timpul primei lansări și este imposibil să creați din nou un tabel cu același nume. Ne confruntăm cu o situație de eroare, așa că este timpul să vorbim despre gestionarea erorilor atunci când lucrăm cu MySQL.

Eroare la procesare

Când depanăm un program, este posibil să avem nevoie de informații precise despre eroare. Când apare o eroare în MySQL, serverul bazei de date setează numărul erorii și o linie cu descrierea acesteia. PHP are funcții speciale pentru a accesa aceste date.

  • mysqli_errno() - returnează numărul erorii.
  • mysqli_error() - returnează un șir care descrie eroarea.

Acum să adăugăm funcția mysql_error() la scriptul nostru:

$link = mysql_connect("localhost", "root", "", "tester"); if (!$link) die("Eroare"); $query = "CREATE TABLE users(login VARCHAR(20), password VARCHAR(20))"; if (mysqli_query($query)) echo "Tabelul a fost creat."; else echo "Tabelul nu a fost creat: ".mysqli_error(); mysqli_close($link);

Acum scriptul nostru va returna linia în browser: „Tabelul nu a fost creat: Tabelul „utilizatori” există deja”.

Ștergerea unui tabel

Deci, acum avem o masă de care nu avem nevoie. Este timpul să învățați cum să aruncați tabele dintr-o bază de date.

Pentru a arunca un tabel, utilizați comanda DROP TABLE urmată de numele tabelului.

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Eroare"); $query = "DROP TABLE utilizatori"; if (!mysqli_query($query)) echo „Eroare la ștergerea tabelului: „.mysqli_error(); else echo „Tabel șters.”; mysqli_close($link);

Rezultate

Deci, am stăpânit elementele de bază ale MySQL. Ce am invatat sa facem:

  • Conectați-vă la o bază de date MySQL utilizând funcția mysqli_connect().
  • Închideți conexiunea la serverul MySQL folosind funcția mysqli_close().
  • Trimiteți interogări SQL către serverul MySQL folosind funcția mysqli_query().
  • Am învățat interogarea SQL pentru crearea unui tabel: create table.
  • Am învățat interogarea SQL pentru ștergerea unui tabel: drop table.
  • Am învățat cum să gestionăm erorile folosind funcțiile mysqli_errno() și mysqli_error().

Apoi vom arunca o privire mai atentă asupra tipurilor de date MySQL.

Citiți următoarea lecție:

LUCRU CU O BAZĂ DE DATE MySQL CU INSTRUMENTE PHP

Lectura. Pregătit de Prokhorov V.S.


1. CONECTAREA SCENARILOR PHP cu tabele MySQL

Să ne uităm la cele mai frecvent utilizate funcții care vă permit să lucrați cu o bază de date MySQL folosind PHP.

Când PHP și MySQL interacționează, programul interacționează cu SGBD printr-un set de funcții.

1.1 Conexiune la server. Funcţiemysql_connect

Înainte de a lucra cu baza de date, trebuie să stabiliți o conexiune la rețea cu aceasta, precum și să autorizați utilizatorul. Funcția mysql_connect() este folosită pentru aceasta.

resursă mysql_connect(]])

Această funcție stabilește o conexiune de rețea la baza de date MySQL situată pe gazda $server (în mod implicit, acesta este localhost, adică computerul curent) și returnează ID-ul conexiunii deschise. Toate lucrările ulterioare sunt efectuate cu acest identificator. Toate celelalte funcții care iau acest identificator (mâner) ca argument vor identifica în mod unic baza de date selectată. La înregistrare, specificați numele de utilizator $nume utilizator și parola $parolă (în mod implicit, numele de utilizator de la care rulează procesul curent - la depanarea scripturilor: root și o parolă goală):

$dbpasswd = ""; //Parola

//Afișează un avertisment

ecou("

");

Variabilele $dblocation, $dbuser și $dbpasswd stochează numele serverului, numele de utilizator și parola.

1.2 Deconectare de la server. Funcţiemysql_close

Conexiunea la serverul MySQL se va închide automat când scriptul se finalizează sau când funcția mysql_close este apelată

bool mysql_close()

Această funcție închide conexiunea la serverul MySQL și returnează true dacă operațiunea are succes și false în caz contrar. Funcția ia ca argument mânerul de conexiune la baza de date returnat de funcția mysql_connect.

$dblocation = "localhost"; //Numele serverului

$dbuser = "rădăcină"; //Nume de utilizator

$dbpasswd = ""; //Parola

//Conectează-te la serverul bazei de date

//Suprimați rezultatul de eroare cu simbolul @ înainte de a apela funcția

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

if (!$dbcnx) //Dacă descriptorul este 0, conexiunea nu este stabilită

//Afișează un avertisment

ecou("

Serverul bazei de date este momentan indisponibil, astfel încât pagina nu poate fi afișată corect.");

if (mysql_close($dbcnx)) //închide conexiunea

echo("Conexiune la baza de date încheiată");

echo("Nu am putut finaliza conexiunea");

1.3 Crearea unei baze de date. Funcția CREATE DATABASE

Comanda - creați o bază de date este disponibilă numai pentru administratorul serverului, iar pe majoritatea site-urilor de găzduire nu poate fi executată:

CREATE DATABASEDatabaseName

Creează o nouă bază de date numită DatabaseName.

Un exemplu de lucru cu această funcție:

@mysql_query("CREATE BAZA DE DATE $dbname");

Este recomandat să folosiți apostrofe („SQL – comandă”) peste tot ca delimitatori pentru liniile care conțin comenzi SQL. Acest lucru asigură că nicio variabilă $ nu este interpolată accidental (adică înlocuită cu valoarea sa) și crește securitatea scriptului.

Comanda de creare a bazei de date CREATE DATABASE este disponibilă doar superutilizatorului, iar pe majoritatea site-urilor de găzduire este imposibil ca un simplu utilizator să o execute. Este disponibil numai pentru administratorul serverului.

Pentru experimente, să creăm o bază de date de teste executând o interogare SQL din linia de comandă. Pentru a face acest lucru, trebuie să vă conectați la MySQL și să introduceți în linia de comandă MySQL:

mysql> crearea bazei de date de testare;

După aceasta, ar trebui să tastați:

mysql>utilizați baza de teste;

Baza de date creată:


1.4 Selectarea unei baze de date. Funcţiemysql_select_db

Înainte de a trimite prima solicitare către serverul MySQL, trebuie să indicăm cu ce bază de date vom lucra. Funcția mysql_select_db este concepută pentru asta:

bool mysql_select_db(șir $nume_base de date [,resursa $identificator_link])

Acesta notifică PHP că operațiunile viitoare pe conexiunea $link_identifier vor folosi baza de date $database_name.

Folosirea acestei funcții este echivalentă cu apelarea comenzii use într-o interogare SQL, adică funcția mysql_select_db selectează o bază de date pentru lucrări ulterioare, iar toate interogările SQL ulterioare sunt aplicate bazei de date selectate. Funcția ia drept argumente numele bazei de date selectate nume_bază de date și resursa descriptor de conexiune. Funcția returnează true dacă operația a avut succes și false în caz contrar:

//Codul de conectare la baza de date

dacă (! @mysql_select_db($dbname, $dbcnx))

//Afișează un avertisment

ecou("

Baza de date este momentan indisponibilă, deci pagina nu poate fi afișată corect.");

1.5 Tratarea erorilor

Dacă apar erori în timpul lucrului cu MySQL (de exemplu, parantezele din interogare nu sunt echilibrate sau nu sunt suficienți parametri), atunci mesajul de eroare și numărul acestuia pot fi obținute folosind cele două funcții descrise mai jos.

Este important să utilizați aceste funcții cu atenție și cu promptitudine, deoarece altfel depanarea scripturilor poate deveni mai dificilă.

● Funcție:

int mysql_errno()

returnează numărul ultimei erori raportate. Identificatorul de conexiune $link_identifier poate fi omis dacă a fost stabilită o singură conexiune în timpul execuției scriptului.

● Funcție:

șir de caractere mysql_error()

returnează nu un număr, ci un șir care conține textul mesajului de eroare. Este convenabil de utilizat în scopuri de depanare. De obicei, mysql_error este folosit împreună cu construcția sau die(), de exemplu:

@mysql_connect ("localhost", "utilizator", "parolă")

sau die("Eroare de conectare la baza de date: ".mysql_error());

Operatorul @, ca de obicei, servește la suprimarea avertismentului standard care ar putea apărea în cazul unei erori.

În versiunile recente de PHP, avertismentele din funcțiile MySQL nu sunt înregistrate în mod implicit.

1.6 Automatizarea conexiunii la MySQL. Fișier (config.php)

De obicei, există mai multe scripturi pe un site care necesită acces la aceeași bază de date.

Se recomandă să separați codul responsabil pentru conectarea la MySQL într-un fișier separat și apoi să îl conectați la scripturile necesare folosind funcția include.

Este logic să plasați funcțiile de conectare, selectare și creare a unei baze de date în același fișier (config.php) unde sunt declarate variabilele cu numele de server $dblocation, username $dbuser, parola $dbpasswd și numele bazei de date $dbname:

lista config.php:

//config.php codul fișierului care conține parametrii pentru conectarea la server și selectarea unei baze de date

//trimite mesaje de eroare de conexiune către browser

$dblocation = "localhost"; //Numele serverului

$dbname = "inserați numele bazei de date" //Numele bazei de date: în curs de creare sau existentă

$dbuser = "rădăcină"; //Numele de utilizator al bazei de date

$dbpasswd = ""; //Parola

//Conectează-te la serverul bazei de date

//Suprimați rezultatul de eroare cu simbolul @ înainte de a apela funcția

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

if (!$dbcnx) //Dacă descriptorul este 0, conexiunea la serverul bazei de date nu este stabilită

//Afișează un avertisment

ecou("

Serverul bazei de date este momentan indisponibil, astfel încât pagina nu poate fi afișată corect.

");

//Creează baza de date $dbname - doar un superutilizator poate face acest lucru

//Dacă baza de date există deja, va exista o eroare non-fatală

@mysql_query("CREAȚI BAZĂ DE DATE dacă nu există $dbname’);

//Cod de conectare la baza de date: facem o selecție neechivocă a unei baze de date nou create sau a unei baze de date deja existente

//Suprimați rezultatul de eroare cu simbolul @ înainte de a apela funcția

if(!@mysql_select_db($dbname, $dbcnx)) //Dacă descriptorul este 0, conexiunea la baza de date nu este stabilită

//Afișează un avertisment

ecou("

Baza de date este momentan indisponibilă, deci pagina nu poate fi afișată corect.

");

//Funcție de ajutor mică care imprimă un mesaj

//Mesaj de eroare în cazul unei erori de interogare a bazei de date

funcția puterror($mesaj)

ecou("");


2. EXECUTAREA ÎNTREBĂRILOR BAZEI DE DATE

2.1 Crearea unui tabel. FuncţieCREAȚI TABEL:

CREATE TABLE TableName (tip FieldName, tip FieldName)

Această comandă creează un nou tabel în baza de date cu coloane (câmpuri) definite prin numele lor (FieldName) și tipurile specificate. După crearea tabelului, puteți adăuga înregistrări la acesta constând din câmpurile enumerate în această comandă.

Listarea test_11.php. Un program care creează un tabel nou într-o bază de date:

includeți „config.php”;//Conectați-vă la server și selectați o bază de date

mysql_query("CREATE TABLE dacă nu există oameni

id INT AUTO_INCREMENT PRIMARY KEY,

sau die("Eroare MySQL: ".mysql_error());


Acest script creează un nou tabel de oameni cu două câmpuri. Primul câmp are tipul INT (întreg) și numele id. Al doilea este tipul TEXT (șir de text) și numele numelui.

Dacă tabelul există, construcția sau die() va funcționa.

Clauza opțională if not exists, atunci când este specificată, spune serverului MySQL că nu ar trebui să genereze un mesaj de eroare dacă un tabel cu numele specificat există deja în baza de date.

Am învățat cum să ne conectăm la serverul MySQL, să selectam o bază de date cu care să lucrăm, am învățat funcția PHP de a trimite interogări către serverul MySQL, am învățat două interogări simple (crearea și ștergerea unui tabel) și am învățat cum să închidem conexiunea.

Acum ne vom aprofunda în interogările MySQL. Asadar, haideti sa începem!

Crearea unui tabel - CREATE TABLE

Acum avem o bază de date goală, nu există tabele în ea. Deci mai întâi vom crea un tabel. Știm deja cum să facem asta din prima parte.

Iată codul de script care va crea placa de care avem nevoie:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Eroare"); $query = "CREATE TABLE users(login VARCHAR(20), password VARCHAR(20))"; if (mysqli_query($link, $query)) echo "Tabelul a fost creat."; else echo "Tabelul nu a fost creat: ".mysqli_error(); mysqli_close($link);

Tabelul nostru are doar două câmpuri: autentificare și parolă. Deocamdată nu mai avem nevoie de nimic, să nu complicăm procesul.

Deci, tabelul a fost creat.

Adăugarea de rânduri (înregistrări) la un tabel - INSERT

Puteți adăuga un rând nou la un tabel utilizând comanda SQL insert. Iată un exemplu:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Eroare"); $query = "INSERT INTO utilizatori (login, parola) VALUE ("zeus", "pass123""); if (mysqli_query($link, $query)) echo „Utilizatorul adăugat.”; else echo "Utilizatorul nu a fost adăugat: " . mysqli_error(); mysqli_close($link);

O interogare SQL constă din comanda INSERT INTO, numele utilizatorilor bazei de date, apoi numele câmpurilor din paranteze, apoi cuvântul VALOARE, urmat de valorile care trebuie adăugate în paranteze. Valorile sunt cuprinse între ghilimele.

Sintaxa cererii arată astfel:

INSERT INTO table_name (coloana1, coloana2) VALUE ("x1", "x2")

Sunt necesare ghilimele din a doua paranteză.

În locul valorilor pot exista variabile. Iată un exemplu:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Eroare"); $login = "zeus"; $parolă = "pass123"; $query = "INSERT INTO utilizatori (login, parola) VALUE ("$login", "$parola"); if (mysqli_query($link, $query)) echo „Utilizatorul adăugat.”; else echo "Utilizatorul nu a fost adăugat: " . mysqli_error(); mysqli_close($link);

Desigur, acest exemplu nu are sens. Poate fi util pentru începători să audă că așa sunt înregistrate în baza de date autentificarea și parolele pe care utilizatorii le oferă în timpul înregistrării. Aceste date sunt stocate în variabile și apoi, după verificare, sunt scrise în baza de date.

Există o modalitate rapidă de a insera mai multe rânduri cu o singură instrucțiune INSERT:

INSERT INTO utilizatori (login, parola) VALUE ("bob", "eee333"), ("Rooki", "12345"), ("magy", "olol88e8")

După cum puteți vedea, datele enumerate sunt pur și simplu separate prin virgule.

Deci, folosind comanda INSERT, am învățat cum să adăugăm înregistrări la un tabel. Daţi-i drumul.

Vizualizare tabel: Comanda SELECT

Acum avem un tabel de utilizatori care are rânduri. Scriptul anterior poate fi rulat de mai multe ori și de fiecare dată va adăuga un rând la tabel. Acum este posibil să nu știm câte rânduri avem în tabel. Și vreau să știu ce am scris în ea.

Pentru a prelua date dintr-un tabel, utilizați comanda SELECT SQL. Semnul * înseamnă că solicităm toate datele, apoi după cuvântul FROM scriem numele tabelului din care dorim să obținem date.

Să interogăm toate datele din tabelul utilizatorilor:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Eroare"); $query = "SELECT * FROM utilizatori"; $rezultat = mysqli_query($link, $query); if (!$rezultat) echo "A apărut o eroare: " . mysqli_error(); else echo "Date primite"; mysqli_close($link);

Funcția mysqli_query() ne-a returnat identificatorul de rezultat al interogării - l-am pus într-o variabilă și mai târziu vom lucra cu ea folosind alte funcții PHP.

Numărul de înregistrări în cerere

Să stabilim câte linii sunt în interogarea noastră? Am rulat scriptul pentru adăugarea unei înregistrări la tabel, nu îmi amintesc de câte ori și acum nu știu câte rânduri sunt în tabelul meu.

Pentru a determina numărul de rânduri din rezultatul unei interogări, utilizați funcția mysqli_num_rows(). Această funcție primește identificatorul rezultatului interogării și returnează numărul de înregistrări.

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Eroare"); $query = "SELECT * FROM utilizatori"; $rezultat = mysqli_query($link, $query); if (!$rezultat) echo "A apărut o eroare: " . mysqli_error(); else echo "Date primite"; $număr = mysqli_num_rows($rezultat); echo "Total rânduri din tabel: $count."; mysqli_close($link);

Dacă trebuie să aflăm numărul de înregistrări din tabel, atunci metoda de mai sus nu este cea mai potrivită. Aici am aflat numărul de înregistrări găsite în interogare, dar numărul de înregistrări din tabel este căutat diferit.

Numărul de înregistrări din tabel SELECT COUNT(*)

Pentru a afla numărul de înregistrări dintr-un tabel, puteți folosi comanda SELECT COUNT(*) FROM table_name.

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Eroare"); mysqli_select_db("tester"); $query = "SELECT * FROM utilizatori"; $rezultat = mysqli_query($link, $query); if (!$rezultat) echo "A apărut o eroare: " . mysqli_error(); else echo "Date primite."; $număr = mysqli_fetch_row($rezultat); echo "Total rânduri din tabel: $count."; mysqli_close($link);

Vă rugăm să rețineți că aici am folosit noua funcție PHP mysqli_fetch_row() pentru a prelua datele. Această funcție returnează un rând al rezultatului interogării sub forma unui tablou simplu; în cazul nostru, există un câmp în rând și are indicele 0.

Vizualizarea rezultatului unei interogări într-o buclă

După executarea unei interogări SQL cu o comandă SELECT și obținerea ID-ului rezultatului interogării, PHP creează un pointer intern în setul de înregistrări rezultat. Acest indicator se deplasează automat la următoarea înregistrare după accesarea înregistrării curente. Acest mecanism face ca este foarte convenabil să parcurgeți setul de rezultate al unei interogări SELECT.

PHP are mai multe funcții cu ajutorul cărora puteți obține o matrice formată din câmpurile sale pentru fiecare linie a interogării rezultate. De exemplu, să luăm funcția mysqli_fetch_row(). Această funcție primește identificatorul cererii și returnează o matrice. Deci, într-o buclă, este vizualizat întregul rezultat al interogării, iar când se ajunge la sfârșitul rezultatului interogării, funcția va returna false .

Deci, interogăm toate datele din tabelul utilizatori (SELECT * FROM utilizatori).


"; while ($row = mysqli_fetch_row($result)) ( echo "Login: $row. Parola: $row.
"; ) mysqli_close($link);

Funcția mysqli_fetch_row() returnează un tablou simplu. În fiecare iterație a buclei, vom primi un tablou cu un rând din tabel, ale cărui câmpuri le putem accesa prin specificarea unui index numeric.

Același lucru se poate face folosind funcția mysql_fetch_assoc(), aceasta returnează o matrice asociativă.

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Eroare"); mysqli_select_db("tester"); $rezultat = mysqli_query($link, "SELECT * FROM users"); if (!$rezultat) echo "A apărut o eroare: " . mysqli_error(); else echo „Date primite.
"; while ($row = mysqli_fetch_assoc($result)) ( echo "Login: $row. Parola: $row.
"; ) mysqli_close($link);

Există și funcții mysqli_fetch_array() - returnează orice tip de matrice, iar mysqli_fetch_object() - returnează un obiect.

SELECT DISTINCT interogare - valori unice de câmp

Să creăm un tabel nou:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Eroare"); mysqli_select_db("tester"); // șterge tabelul existent mysqli_query($link, "DROP TABLE users"); // creează un tabel nou $query = "CREATE TABLE users(nume VARCHAR(20), prenume VARCHAR(20), vârsta TINYINT UNSIGNED)"; if (mysqli_query($link, $query)) echo „Tabelul a fost creat.
"; else echo "Tabelul nu a fost creat: " . mysqli_error(); // funcție pentru a adăuga înregistrări la tabelul funcția add_new_line($link, $query) ( if (!mysqli_query($link, $query)) echo "Utilizatorul nu added: " . mysqli_error(); ) // adăugați înregistrări add_new_line($link, "INSERT INTO users (nume, prenume, vârstă) VALUE ("Max", "Jayson", "33")"); add_new_line($link , "INSERT INTO utilizatori (nume, prenume, vârstă) VALUE ("Bob", "Freeman", "26")"); add_new_line($link, "INSERT INTO utilizatori (nume, prenume, vârstă) VALUE ("Sara" , "Lopes", "65")"); add_new_line($link, "INSERT INTO utilizatori (nume, prenume, vârstă) VALUE ("Serg", "Pupin", "29")"); add_new_line($link, " INSERT INTO utilizatori (nume, prenume, vârstă) VALUE ("Serg", "Borman", "43")"); add_new_line($link, "INSERT INTO utilizatori (nume, prenume, vârstă) VALUE ("Max", " Lopes", "21")"); // afișează conținutul tabelului în browser $result = mysqli_query($link, "SELECT * FROM users"); if (!$result) echo "A apărut o eroare: " . mysqli_error(); else echo "Date primite.
"; while ($row = mysqli_fetch_assoc($result)) ( echo "Prenumele: $row. Nume: $row. Vârsta: $row.
"; ) mysqli_close($link);

Deci, avem un tabel nou, mai complex, cu înregistrări unice. Acum să vedem câte nume avem în baza de date.

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Eroare"); mysqli_select_db("tester"); $rezultat = mysqli_query($link, "SELECTARE nume DISTINCT FROM utilizatori"); echo "Total nume: " . mysqli_num_rows($rezultat)."
"; echo "Lista de nume:
"; while ($nume = mysqli_fetch_row($rezultat)) ( echo "$nume
"; ) mysqli_close($link);

Interogarea SQL „SELECT DISTINCT name FROM users” a returnat un rezultat cu toate numele unice din tabelul nostru. Fiecare nume unic într-un nou rând al rezultatului interogării.

Sortarea rezultatului - ORDER BY

Adăugând comanda ORDER BY la interogarea SQL, sortăm rezultatul interogării în ordine crescătoare (numerele și literele în ordine alfabetică). Iată un exemplu în care puteți compara o interogare obișnuită și una sortată după vârstă (câmpul de vârstă).



"; ) echo "Sortați după vârstă:
"; $result = mysqli_query($link, "SELECT * FROM users ORDER BY age"); while ($line = mysqli_fetch_row($result))) ( echo "Prenumele: $line. Nume: $line. Vârsta: $ linia.
"; ) mysqli_close($link);

Puteți înlocui câmpul de vârstă din comanda ORDER BY cu câmpul de nume și puteți vedea rezultatul.

Pentru a sorta rezultatul interogării în ordine inversă, utilizați comanda ORDER BY age DESC.

Condiție de potrivire - UNDE

Adăugând comanda WHERE la interogarea SQL, vom interoga doar acele înregistrări care îndeplinesc condiția. De exemplu, să facem o cerere pentru persoane sub 30 de ani.

Pentru a face acest lucru, folosim interogarea SQL „SELECT * FROM users WHERE age

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Eroare"); mysqli_select_db("tester"); ecou „Persoane sub 30 de ani:
"; $rezultat = mysqli_query($link, "SELECT * FROM utilizatorii WHERE varsta<30"); while ($line = mysqli_fetch_row($result)) { echo "Имя: $line. Фамилия: $line. Возраст: $line.
"; ) mysqli_close($link);

De asemenea, putem sorta imediat rezultatul în ordine crescătoare de vârstă:
" SELECTAȚI * FROM utilizatorii WHERE vârsta<30 ORDER BY age ".

Dacă facem o interogare „ SELECTAȚI numele FROM utilizatorii WHERE vârsta<30 ORDER BY age ", то в результате нам вернут только значения поля "name", но они также будут отсортированы по age.

Putem interoga valorile a două câmpuri: „SELECT numele, vârsta FROM utilizatorii WHERE vârsta

Acum să cerem tuturor utilizatorilor cu numele „Max”.

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Eroare"); mysqli_select_db("tester"); echo "Toate Maxes:
"; $rezultat = mysqli_query($link, "SELECT * FROM users WHERE name="Max""); while ($line = mysqli_fetch_row($result)) ( echo "Prenumele: $line. Nume: $line. Vârsta: $line.
"; ) mysqli_close($link);

Și un alt exemplu de interogare - va selecta numai nume din tabelul utilizatorilor, totul cu excepția Max.

SELECTAȚI numele FROM utilizatorii WHERE nume!="Max"

Asta e tot pentru interogarea WHERE.

Limitarea intrărilor - LIMIT

Adăugând comanda LIMIT la interogarea SQL, vom limita dimensiunea rezultatului.

Interogarea care returnează primele trei intrări este: „ SELECT * FROM users LIMIT 3”. Să vedem cum funcționează:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Eroare"); mysqli_select_db("tester"); echo „Conținutul tabelului:
"; $rezultat = mysqli_query($link, "SELECT * FROM users"); while ($line = mysqli_fetch_row($result)) ( echo "Prenumele: $line. Nume: $line. Vârsta: $line.
";) ecou"

Primele trei intrări:
"; $result = mysqli_query($link, "SELECT * FROM users LIMIT 3"); while ($line = mysqli_fetch_row($result))) ( echo "Prenumele: $line. Nume: $line. Vârsta: $line .
";) ecou"

Al doilea trei intrări:
"; $result = mysqli_query($link, "SELECT * FROM users LIMIT 3, 3"); while ($line = mysqli_fetch_row($result))) ( echo "Prenumele: $line. Nume: $line. Vârsta: $line .
"; ) mysqli_close($link);

Tot aici am folosit interogarea: „SELECT * FROM users LIMIT 3, 3”. Al doilea triplu indică decalajul din rezultatul interogării.

Model de potrivire - LIKE

Limbajul SQL acceptă șabloane simple. Pentru a face acest lucru, utilizați comanda LIKE și specificați modelul folosind simbolul %.

Iată un exemplu de interogare care va returna toate înregistrările cu nume care încep cu litera S.

SELECTAȚI * FROM utilizatorii WHERE nume LIKE „S%”

Testez cererea:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Eroare"); mysqli_select_db("tester"); echo „Conținutul tabelului:
"; $rezultat = mysqli_query($link, "SELECT * FROM users"); while ($line = mysqli_fetch_row($result)) ( echo "Prenumele: $line. Nume: $line. Vârsta: $line.
";) ecou"

Nume care încep cu S:
"; $result = mysqli_query($link, "SELECT * FROM users WHERE name LIKE "S%""); while ($line = mysqli_fetch_row($result)) ( echo "Prenume: $line. Nume: $line Vârsta: $line.
"; ) mysqli_close($link);

Iată un exemplu de interogare care va returna toate înregistrările cu numele de familie care se termină cu litera s.

SELECTAȚI * FROM utilizatorii WHERE nume LIKE „%s”

Condiție îndeplinită - IN

Această interogare folosind comanda IN va returna numai acele rânduri care se potrivesc strict cu condiția.

De exemplu, suntem interesați de persoane cu vârsta de 21, 26 și 33 de ani.

SELECTAȚI * FROM utilizatorii WHERE vârsta IN (21,26,33)

Testez cererea:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Eroare"); mysqli_select_db("tester"); echo „Conținutul tabelului:
"; $rezultat = mysqli_query($link, "SELECT * FROM users"); while ($line = mysqli_fetch_row($result)) ( echo "Prenumele: $line. Nume: $line. Vârsta: $line.
";) ecou"

Persoane cu vârstele cerute (21, 26, 33):
"; $result = mysqli_query($link, "SELECT * FROM users WHERE age IN (21, 26, 33)"); while ($line = mysqli_fetch_row($result))) ( echo "Prenumele: $line. Nume : $ line.Vârsta: $line.
"; ) mysqli_close($link);

Valoarea maximă și minimă într-o coloană

Selectează valoarea maximă a vârstei din tabelul utilizatorilor.

SELECTează max(vârsta) FROM utilizatori

Următoarea interogare selectează datele din tabelul utilizatori folosind câmpurile pentru nume și vârstă, unde vârsta ia valoarea minimă.

SELECT numele, min(vârsta) FROM utilizatori

Actualizarea unei înregistrări - UPDATE

Să setăm vârsta lui Max Lopes la 15 ani. Acest lucru se face cu o interogare MySQL:

UPDATE utilizatorii SETĂ age="15" WHERE name="Max" AND surname="Lopes"

Vă rugăm să rețineți noua comandă AND (și înseamnă „și” în engleză) în interogare. Dacă nu specificăm numele de familie, atunci se va stabili vârsta de 15 ani pentru toate Max-urile din tabel.

Puteți actualiza două sau mai multe câmpuri pe un rând cu o singură interogare. Acest lucru se face după cum urmează:

UPDATE utilizatorii SETează vârsta = „18”, prenume = „Coocker” WHERE id = „3”

Tabelul nostru nu are un câmp ID, așa că această interogare nu va funcționa pe el. Dar cu siguranță vom învăța acest câmp care conține numere de linie unice.

Ștergeți o intrare - DELETE

Interogare baza de date MySQL pentru a șterge o înregistrare:

DELETE FROM users WHERE id = „10”

Din nou, tabelul nostru nu are un câmp ID. Dar putem elimina din el pe toți oamenii sub 18 ani.

ȘTERGEȚI DIN utilizatorii WHERE vârsta< "18"

Ștergeți un tabel - DROP TABLE

Interogare baza de date MySQL care șterge întregul tabel de utilizatori:

DROP TABLE utilizatori

Ștergeți o coloană - ALTER TABLE ... DROP ...

Uneori, poate fi necesar să eliminați o coloană dintr-un tabel, de exemplu, să eliminăm coloana de vârstă de la utilizatori:

utilizatorii ALTER TABLE DROP varsta

Această interogare MySQL a șters coloana permanent și definitiv.

Adăugați o coloană - ALTER TABLE ... ADD ...

Uneori poate fi necesar să adăugați o coloană la un tabel existent, să adăugăm, de exemplu, coloana de vârstă înapoi la tabelul utilizatorilor:

Utilizatorii ALTER TABLE ADD age TINYINT UNSIGNED

Redenumirea unei coloane - ALTER TABLE ... CHANGE ...

Uneori poate fi necesar să redenumiți o coloană, de exemplu, redenumiți coloana de vârstă în vozrast. O facem astfel:

ALTER TABLE utilizatorii SHANGE varsta varsta TINYINT UNSIGNED

Această interogare MySQL a redenumit vârsta coloanei în vozrast cu tipul de date TINYINT UNSIGNED.

Redenumirea unui tabel - RENAME TABLE ... TO ...

Uneori poate fi necesar să redenumiți tabelul:

REDENUMIȚI utilizatorii TABELULUI ÎN popoare

Eliminarea unei baze de date - DROP DATABASE

Această interogare poate șterge baza de date numită tester:

DROP DATABASE tester

Crearea unei baze de date - CREATE DATABASE

Această interogare creează o bază de date numită tester:

CREATE BAZĂ DE DATE tester

Această solicitare funcționează pentru mine în Denver, dar la găzduire este posibil să nu funcționeze dacă utilizatorul bazei de date nu are drepturi de ștergere.

Rezultate

Deci, în această parte ne-am familiarizat cu interogările către MySQL. Multe dintre interogările pe care le-am examinat nu ne sunt adesea utile în procesul de lucru, dar trebuie să le cunoaștem, deoarece cu siguranță vor fi utile în procesul de dezvoltare a scripturilor.

Unele solicitări sunt de obicei făcute numai din phpMyAdmin (crearea și ștergerea bazelor de date de exemplu).

Când lucrați pe site-uri web, de obicei trebuie să adăugați o înregistrare la un tabel, să editați o înregistrare sau să ștergeți o înregistrare dintr-un tabel.

Următorul pas este să aflați despre tipurile de date MySQL.