Adăugarea datelor la tabelul sql php. Adăugarea datelor în PHP

În acest articol, vom analiza cum să folosiți PHP pentru a insera rânduri într-o bază de date MySQL.

Pasul 1 - Crearea unui tabel

Mai întâi trebuie să creați un tabel pentru date. Aceasta este o procedură simplă care poate fi efectuată folosind phpMyAdmin în panoul de control al găzduirii.

După ce vă conectați la phpMyAdmin, veți vedea o interfață ca aceasta:

Să creăm un tabel numit Studenți în baza de date u266072517_name făcând clic pe butonul „Creează tabel”. După aceea vom vedea pagina noua, pe care setăm toți parametrii necesari de tabel:

Acesta este cel mai mult configurare ușoară, care poate fi folosit pentru masă și obține informatii suplimentare despre structura tabelelor/bazelor de date.

Opțiuni de coloane:

  • Nume este numele coloanei care apare în partea de sus a tabelului.
  • Tip este tipul coloanei. De exemplu, am ales varchar pentru că vom introduce valori de șir.
  • Lungime/Valori - folosit pentru a specifica lungime maxima, pe care o poate avea intrarea din această coloană.
  • Index - Am folosit un index „Primar” pentru câmpul „ID”. La crearea unui tabel, se recomandă ca o singură coloană să fie utilizată ca cheie primară. Este folosit pentru a lista înregistrările dintr-un tabel și este necesar la configurarea tabelului. Am marcat și „A_I”, care înseamnă „Auto Increment” - opțiunea de a atribui automat numărul de înregistrări (1,2,3,4...).
    Faceți clic pe butonul Salvare și va fi creat tabelul.

Pasul 2. Scrierea codului PHP pentru a introduce date în MySQL.

Opțiunea 1 - metoda MySQLi

Mai întâi trebuie să stabiliți o conexiune la baza de date. După aceea, folosim interogarea SQL INSERT. Exemplu de cod complet:

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

Prima parte a codului (linia 3 - 18) este pentru conectarea la baza de date.

Să începem cu rândul #19:

$sql = "INSERT INTO Students (nume, prenume, e-mail) VALORI ("Thom", "Vial", " [email protected]")";

Inserează date în baza de date MySQL. INSERT INTO este o instrucțiune care adaugă date la tabelul specificat. În exemplul nostru, datele sunt adăugate la tabelul Studenți.

Urmează enumerarea coloanelor în care sunt inserate valori: nume, prenume, email. Datele vor fi adăugate în ordinea specificată. Dacă am fi scris (e-mail, prenume, nume), valorile ar fi fost adăugate în altă ordine.

Următoarea parte este declarația VALUES. Aici specificăm valorile pentru coloanele: nume = Thom, prenume = Fiolă, email = [email protected]

Am executat o interogare folosind cod PHP. În cod, interogările SQL trebuie să fie evadate cu ghilimele. Următoarea parte a codului (linia 20-22) verifică dacă solicitarea noastră a avut succes:

if (mysqli_query($conn, $sql)) ( echo „Înregistrare nouă creată cu succes”; )

Acest cod afișează un mesaj că solicitarea a avut succes.

Și ultima parte (linia 22 - 24) afișează o notificare dacă cererea nu a avut succes:

else ( echo "Eroare: " . $sql . "
" .mysqli_error($conn); )

Opțiunea 2 - Metoda PHP Data Object (PDO)

Mai întâi trebuie să ne conectăm la baza de date prin crearea unui nou obiect PDO. Când lucrăm cu el, vom folosi diverse metode DOP. Metodele obiect sunt numite astfel:

$obiectul->Metoda();

PDO vă permite să „pregătiți” codul SQL înainte de a fi executat. Interogarea SQL este evaluată și „corectată” înainte de a fi rulată. De exemplu, cel mai simplu atac de injecție SQL poate fi efectuat prin simpla introducere a codului SQL într-un câmp de formular. De exemplu:

Deoarece acesta este SQL corect din punct de vedere sintactic, punctul și virgulă face DROP DATABASE user_table o nouă interogare SQL și tabelul utilizator este abandonat. Expresiile pregătite (variabilele legate) nu permit punctului și virgulă și ghilimele să încheie interogarea inițială. Prin urmare, comanda DROP DATABASE nu va fi niciodată executată.

Pentru a utiliza instrucțiunile pregătite, trebuie să scrieți o nouă variabilă care apelează metoda prepare() a obiectului bazei de date.

Cod corect:

getMessage(); ) // Setați variabile pentru persoana pe care dorim să o adăugăm în baza de date $first_Name = "Thom"; $last_Name = "Fila"; $email = " [email protected]"; // Creați o variabilă care apelează metoda prepare() a obiectului bazei de date // Interogarea SQL pe care doriți să o executați este introdusă ca parametru, iar substituenții sunt scrieți astfel: placeholder_name $my_Insert_Statement = $my_Db_Connection->prepare( „INSERT INTO Students (nume, prenume, email) VALUES (:first_name, : last_name, :email)”); // Acum spunem scriptului la ce variabilă se referă fiecare substituent pentru a utiliza metoda bindParam() // primul parametru este substituentul din declarația de mai sus, al doilea este variabila la care ar trebui să se refere $my_Insert_Statement->bindParam(:first_name, $first_Name); $my_Insert_Statement->bindParam(:last_name, $last_Name); $my_Insert_Statement->bindParam (:email, $email); // Executați interogarea folosind datele pe care tocmai le-am definit // Metoda execute() returnează TRUE dacă a reușit și FALSE dacă nu, lăsându-vă să imprimați propriul mesaj dacă ($my_Insert_Statement ->execute()) ( echo „Reco. nouă rdcreated cu succes”; ) else ( echo "Nu se poate crea înregistrarea"; ) // În acest moment, puteți modifica datele variabile și puteți rula o interogare pentru a adăuga mai multe date la datele bazei de date în baza de date $first_Name = "John"; $last_Name = "Smith"; $email = " [email protected]"; $my_Insert_Statement->execute(); // Executați din nou când variabila este schimbată if ($my_Insert_Statement->execute()) ( echo "New recordcreatedsuccessfully"; ) else ( echo "Nu se poate crea înregistrarea";

Pe liniile 28, 29 și 30 folosim metoda bindParam() a obiectului bazei de date. Există, de asemenea, o metodă bindValue(), care este foarte diferită de cea anterioară.

  • bindParam() - Această metodă evaluează datele atunci când este atinsă metoda execute(). Prima dată când scriptul ajunge la metoda execute(), vede că $first_Name se potrivește cu „Thom”. Apoi leagă acea valoare și rulează interogarea. Când scriptul ajunge la a doua metodă execute(), vede că $first_Name acum se potrivește cu „John”. Apoi leagă această valoare și rulează din nou interogarea cu valori noi. Este important să ne amintim că am definit odată o interogare și am reutilizat-o cu date diferite în diferite puncte ale scriptului.
  • bindValue() - Această metodă evaluează datele de îndată ce este atins bindValue(). Deoarece $first_Name a fost setat la „Thom”, când se atinge bindValue(), acesta va fi folosit de fiecare dată când este apelată metoda execute() de pe $my_Insert_Statement.
    Rețineți că reutilizam variabila $first_Name și îi atribuim o nouă valoare a doua oară. După rularea scriptului, ambele nume vor fi listate în baza de date, în ciuda faptului că variabila $first_Name de la sfârșitul scriptului are valoarea „John”. Amintiți-vă că PHP verifică întregul script înainte de a-l rula.

Dacă actualizați scriptul pentru a înlocui bindParam cu bindValue, veți introduce „Thom Vial” de două ori în baza de date și John Smith va fi ignorat.

Pasul 3 - Confirmați succesul și rezolvați problemele

Dacă cererea de inserare a rândurilor în baza de date a avut succes, vom vedea următorul mesaj:

Depanarea erorilor comune

MySQLi

În orice alt caz, va fi afișat un mesaj de eroare. De exemplu, să facem o eroare de sintaxă în cod și obținem următoarele:

Prima parte a codului este în regulă, conexiunea a fost stabilită cu succes, dar interogarea SQL a eșuat.

„Eroare: INSERT INTO Students (nume, prenume, e-mail) VALUES ("Thom", "Vial", " [email protected]") Aveți o eroare în sintaxa dvs. SQL; verificați manualul care corespunde versiunii de server MySQL pentru sintaxa drepturilor de utilizat lângă "(nume, prenume, e-mail) VALORI ("Thom", "Vial", " [email protected]")" la rândul 1"

A apărut o eroare de sintaxă care a cauzat eșecul scriptului. Eroarea a fost aici:

$sql = "INSERT INTO Students (nume, prenume, e-mail) VALORI ("Thom", "Vial", " [email protected]")";

Am folosit bretele în loc de bretele normale. Acest lucru este incorect și scriptul a dat o eroare de sintaxă.

DOP

Pe linia 7 a conexiunii PDO, modul de eroare este setat la „afișează toate excepțiile”. Dacă a fost setată o altă valoare și cererea ar eșua, nu vom primi niciun mesaj de eroare.

Această setare ar trebui utilizată numai atunci când se dezvoltă un script. Când este activată, pot fi afișate numele bazelor de date și tabelelor, care sunt cel mai bine păstrate ascunse din motive de securitate. În cazul descris mai sus, când au fost folosite paranteze în loc de paranteze obișnuite, mesajul de eroare arată astfel:

Eroare fatală: excepție neprinsă „PDOException” cu mesajul „SQLSTATE: Eroare de sintaxă sau violare de acces: 1064 Aveți o eroare în sintaxa dvs. SQL; verificați manualul care corespunde versiunii de server MySQL pentru sintaxa drepturilor de utilizat lângă „(nume, prenume, e-mail) VALORI („Thom”, „Vial”, „ [email protected]")" la rândul 1"

Alte probleme posibile:

  • Coloanele sunt specificate incorect (coloane inexistente sau o greșeală de ortografie în numele lor).
  • Un tip de valoare este atribuit unei coloane de alt tip. De exemplu, dacă încercați să introduceți numărul 47 în coloana Nume, veți primi o eroare. Această coloană trebuie să utilizeze o valoare șir. Dar dacă am specifica un număr între ghilimele (de exemplu, „47”), ar funcționa, deoarece este un șir.
  • S-a încercat introducerea datelor într-un tabel care nu există. La fel și o greșeală de ortografie în numele tabelului.

După introducerea cu succes a datelor, vom vedea că acestea au fost adăugate în baza de date. Mai jos este un exemplu de tabel în care au fost adăugate date.

In aceasta postare vreau sa spun cum se transferă în baza de date datele introduse în formular. Și așa creăm un formular simplu în care vom avea două câmpuri: un nume de utilizator și e-mailul lui:

Numele dumneavoastră:
Email-ul tau:


Acest formular poate fi folosit pentru a înregistra un nou utilizator, pentru a trimite știri, pentru a colecta statistici și pentru orice... În general, utilizatorul completează acest formular cu datele sale: nume și e-mail, face clic pe buton și apoi pe datele intră în scriptul php:

$nume = $_POST[„nume”]; $email = $_POST[„e-mail”]; $rezultat = mysqli_query("INSERT INTO user (nume, email) VALUES ("$nume", "$email")"); if ($rezultat) ( echo „Date salvate cu succes!”; ) else ( echo „A apărut o eroare, vă rugăm să încercați din nou.”; )


Ce se întâmplă în acest scenariu? Acum hai să ne dăm seama!
Datele introduse în formular sunt transferate în scriptul php (care este scris mai sus) folosind metoda POST, iar folosind matricea globală $_POST, datele sunt formate în variabilele $name și $email:

$nume = $_POST[„nume”]; $email = $_POST[„e-mail”];


După ce variabilele sunt gata pentru a fi introduse în baza de date, compunem o interogare. Dar mai întâi, scripturile dvs. trebuie să fie deja conectate la baza de date, cum să vă conectați la baza de date, am scris în acest thread:. Cererea în sine arată astfel:

$rezultat = mysqli_query("INSERT INTO user (nume, email) VALUES ("$nume", "$email")");


În acest cod, am indicat că următoarele variabile vor fi adăugate la celulele de nume și e-mail care se află în tabelul de utilizator: $name și $email .
În plus, dacă totul a mers bine, vom primi un mesaj de la starea:

Datele au fost salvate cu succes!


Dacă au apărut probleme și datele nu au fost introduse, vom primi un mesaj de eroare:

O eroare s-a produs. Va rugam incercati din nou.


Asta e tot!

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

Dacă doriți, puteți adăuga mai multe câmpuri pentru introducerea informațiilor, de exemplu, trebuie să adăugăm un câmp pentru introducerea orașului utilizatorului. Avem deja un script gata făcut (scris mai sus), acum doar adăugăm un câmp Orasul tau, să denumim variabila: $city . Și așa în formularul de introducere a datelor, după:

Email-ul tau:


adăuga:

Orasul tau:


În script php, după:

$email = $_POST[„e-mail”];


adăuga:

$oraș = $_POST[„oraș”];


Și, desigur, îl adăugăm și la cerere, astfel:

$rezultat = mysqli_query("INSERT INTO user (nume, email, oras) VALUES ("$nume", "$email", "$oras")");


Iată care ar trebui să fie rezultatul final:
Formular de intrare:

Numele dumneavoastră:
Email-ul tau:
Orasul tau:


Scenariul:

$nume = $_POST[„nume”]; $email = $_POST[„e-mail”]; $oraș = $_POST[„oraș”]; $rezultat = mysqli_query("INSERT INTO user (nume, email, oras) VALUES ("$nume", "$email", "$oras")"); if ($rezultat == true) ( ​​echo „Date salvate cu succes!”; ) else ( echo „A apărut o eroare, vă rugăm să încercați din nou.”; )


După cum puteți vedea, nimic complicat! Dacă este necesar, puteți adăuga un alt câmp și altul și altul...

În acest articol vom analiza, poate, una dintre cele mai importante interogări SQL. Acest interogări pentru a adăuga și șterge înregistrări dintr-un tabel de bază de date. Pentru că, FOARTE des adăugați înregistrări noi la tabel, și faceți-o automat, atunci acest material trebuie să fie studiat.

A începe Interogare SQL pentru a adăuga o nouă înregistrare la un tabel:

INSERT INTO utilizatori (login, pass) valori ("TestUser", "123456")

Când adăugați o înregistrare, prima comandă este " INTRODU IN", apoi numele tabelului în care inserăm înregistrarea. Urmează numele câmpurilor pe care dorim să le completăm între paranteze. Și apoi în paranteze după cuvântul " valorile„începem să listăm valorile câmpurilor pe care le-am selectat. După executarea acestei interogări, în tabelul nostru va apărea o nouă înregistrare.

Uneori necesar actualizați intrarea tabelului, pentru aceasta există următoarele interogare SQL:

UPDATE utilizatorii SET login = "TestUser2", pass="1234560" WHERE login="TestUser"

Această interogare este mai complexă, deoarece are „ UNDE", dar despre asta ceva mai jos. Mai întâi vine comanda" ACTUALIZAȚI", apoi numele tabelului și după " A STABILIT" descriem valorile tuturor câmpurilor pe care dorim să le schimbăm. Ar fi simplu, dar se pune întrebarea: " Ce intrare ar trebui actualizată?". Pentru aceasta există" UNDE". În acest caz, actualizăm înregistrarea, câmpul " Autentificare"ceea ce conteaza" TestUser„. Vă rugăm să rețineți că dacă există mai multe astfel de înregistrări, atunci totul va fi actualizat! Acest lucru este foarte important de înțeles, altfel riscați să vă pierdeți foaia de calcul.

Să mai vorbim puțin despre UNDE„. Pe lângă verificările simple de egalitate, există și inegalități, precum și operații logice: ȘIȘi SAU.

UPDATE utilizatorii SET autentificare = "TestUser2", pass="1234560" WHERE id< 15 AND login="TestUser"

The interogare SQL va actualiza acele înregistrări id care sunt mai putine 15 ȘI camp " Autentificare"are sens" TestUser". Sper că v-ați dat seama de design" UNDE"pentru ca este foarte important. Tocmai" UNDE" este folosit când preluarea înregistrărilor din tabele, iar aceasta este sarcina utilizată cel mai frecvent atunci când lucrați cu baze de date.

Și în sfârșit, simplu Interogare SQL pentru a șterge înregistrările dintr-un tabel:

DELETE FROM users WHERE login="TestUser2"

După comandă " ȘTERGERE DIN" merge numele tabelului în care doriți să ștergeți înregistrările. În continuare, descriem construcția „UNDE”. Dacă înregistrarea îndeplinește condițiile descrise, aceasta va fi ștearsă. Din nou, atenție, în funcție de numărul de înregistrări care satisface condiția după " UNDE„, orice număr dintre ele poate fi eliminat.

În această lecție, vom învăța cum să introducem în baza de date MySql, datele introduse de utilizator în formular. Veți învăța cum să vă conectați la baza de date MySql din codul paginii web, precum și să procesați și să introduceți date în baza de date.


În ultima lecție, v-am spus cum să instalați Denver pe computer, cum să vă creați propria bază de date, un utilizator pentru aceasta, cum să creați un tabel în baza de date și l-am completat cu o singură înregistrare.

În acest tutorial, vom crea un document html pentru introducerea informațiilor despre utilizator, precum și un fișier php care se ocupă de aceste informații, care va procesa datele, se va conecta la baza de date MySql și va introduce acolo noi înregistrări.

Trecând de la cuvinte la fapte, să începem.

Adăugarea datelor utilizatorului la baza de date MySql dintr-o pagină web

Primul pas: crearea unui formular html pentru introducerea datelor

De la bun început, trebuie să ne pregătim să lucrăm cu php, MySql și să testăm codul scris pe computerul local. Pentru aceasta:

1. Lansați Denwer pe computer.

2. Deschideți discul virtual creat de Denver (de exemplu, discul meu este „Z”). Deschideți-l, apoi: home - localhost - www - acolo creați un folder nou și dați-i un nume (voi da numele „db1”).

3. Dacă lucrați în Adobe Dreamweaver, atunci mergeți la managerul site-ului, acolo faceți clic pe butonul „Nou”, selectați calea către folderul nou creat ca cale, în câmpul de mai sus puteți da un nume site-ului, apoi faceți clic pe Salvare - Terminat. După toate acestea, folderul dvs. va apărea în panoul din dreapta al Adobe Dreamweaver.

1. Acum vom crea un fișier html obișnuit (să-l numim info_form.html și să-l salvăm în folderul db1 nou creat) și să scriem acolo codul formularului pentru introducerea informațiilor. În tabelul nostru de utilizatori ai bazei de date new_db, există 4 câmpuri pe care un utilizator le-ar putea completa (câmpul ID va fi completat automat). Pe baza acestui lucru, puteți crea următorul cod:

Document fara titlu










Aici, în parametrul „acțiune” al formularului nostru, fișierul este înregistrat formular.php. Acesta va fi fișierul de gestionare pe care îl vom crea în continuare.

Să creăm și un fișier style.css pentru a stila formularul nostru. Este deja inclus în cod, așa că nu rămâne decât să îl creați, să îl plasați în același folder cu fișierul html și să scrieți următorul cod în el:

Corp (lățime:400px; margine:0 auto; fundal:#F8F4B6;) etichetă(afișare: bloc; float: stânga; lățime: 150px; umplutură: 0 10px; margine: 18px 0 0; text-align: right;) # trimite (float:right; margin:5px 50px 10px 0;)

Acum formularul arată astfel:

Cu toate acestea, dacă introduceți datele și încercați să trimiteți formularul, veți vedea o eroare, deoarece nu există niciun fișier form.php în directorul de scripturi.

Crearea unui fișier de gestionare este următoarea noastră sarcină.

2. Să intrăm în dosar db1 creați un folder numit scenarii. În el, vom salva toate scripturile noastre pentru a interacționa cu baza de date MySql.

După ce folderul a fost creat, creați un nou fișier php și salvați-l în folderul scripts ca formular.php.

Dar înainte de a ne ocupa direct de fișierul de procesare a informațiilor, trebuie mai întâi să ne conectăm la baza noastră de date. Vă sugerez să creați un fișier separat pentru aceasta și iată de ce:

Cel mai probabil, în proiectul dvs. va trebui să vă conectați la baza de date MySql nu doar dintr-un fișier. De regulă, diferite fișiere de proiect interacționează cu baza de date.
Este foarte imposibil să scrieți același cod de conexiune la baza de date în fiecare astfel de fișier. Și dacă sunt, de exemplu, 50 de astfel de fișiere și într-o bună zi schimbi parola utilizatorului și trebuie să cauți toate aceste 50 de fișiere și să faci corecturi în fiecare.
Este mult mai convenabil să folosiți un fișier separat pentru conectare, care va fi conectat la fiecare dintre fișierele unde ar trebui să existe o conexiune la baza de date MySql. În acest caz, va trebui să faceți corecții la un singur fișier.

Deci, să creăm un nou fișier php, să-l numim conectați.phpși puneți în folderul pentru scripturi. În acesta, vom scrie codul pentru conectarea la baza noastră de date MySql, precum și codul care va raporta erori dacă apar. Vă rugăm să rețineți că va trebui să introduceți numele dvs. de utilizator, parola și numele bazei de date ca parametri. Gazda trebuie să fie localhost.

Eroare la conectarea la baza de date! " .mysql_error() ."

"); mysql_select_db("new_db")//parametrul între paranteze ("numele bazei de date la care se conectează") sau die("

Eroare de selectare a bazei de date! ". mysql_error() ."

"); ?>

Acum să mergem la fișierul form.php și să includem fișierul connect.php în el folosind următorul cod:

Dacă încercați să trimiteți formularul acum, veți vedea o pagină web goală după trimitere. Acest lucru este normal, deoarece tocmai ne-am conectat la bază și nu afișăm nimic altceva deocamdată.

Dacă vedeți un mesaj de eroare, verificați dacă toți parametrii sunt corecti (nume de utilizator, parolă, nume de gazdă: localhos, numele bazei de date) și, de asemenea, asigurați-vă că Denver-ul este pornit.

3. Ne-am conectat cu succes la baza de date MySql, iar acum trebuie acceptă datele introduse în formularul din dosarul nostru de gestionare. Atributele „nume” care sunt prezente în documentul html ne vor ajuta în acest sens.

Pentru a obține date, folosim un special variabila php, care ne furnizează toate informațiile din formularul web. Această variabilă se numește „$_REQUEST”.

Scrieți următorul cod în fișierul form.php după conectarea fișierului connect.php:

$first_name = $_REQUEST["prenume"]; $prenume = $_REQUEST["nume"]; $email = $_REQUEST["e-mail"]; $facebook = $_REQUEST["facebook"];

4. Am primit datele în fișier și le-am introdus în variabile. Acum ai nevoie trimite aceste date în tabelul nostru bazei de date MySql. Pentru a face acest lucru, trebuie să scrieți următorul cod mai jos:

$insert_sql = "INSERT INTO utilizatori (prenume, prenume, e-mail, facebook)" . „VALORI(”($prenume)”, „($nume)”, „($email)”, „($facebook)”);”; mysql_query($insert_sql);

Aici, mai întâi formăm o interogare, spunând că trebuie să inserăm variabilele corespunzătoare în câmpurile corespunzătoare ale tabelului „utilizatori”. Introducem această interogare în variabila „$insert_sql”. Și apoi, folosind funcția specială mysql_query, executăm această interogare.

Dacă completați și trimiteți formularul acum și apoi căutați în tabelul „utilizatori” din baza de date, veți vedea noua intrare care a apărut acolo după trimitere.

5. Am inserat o înregistrare nouă dintr-o pagină web într-un tabel al bazei de date MySql. Acum vreau să ating puțin formatul în care sunt inserate datele noastre.

În primul rând, trebuie să aveți grijă de situația în care o persoană care completează un formular poate pune spații inutile la începutul introducerii informațiilor. Ele trebuie tăiate.

În al doilea rând, avem un domeniu pentru Facebook. Dacă ulterior dorim să afișăm aceste informații ca link, atunci trebuie să avem grijă ca datele din acest câmp să fie stocate în formatul corect (adică „http://www.facebook.com/facebook id”). Dar utilizatorul nu va introduce întotdeauna aceste date așa cum avem nevoie. El poate introduce: „www.facebook.com/facebook id”, „facebook.com/facebook id” sau doar „/facebook id”.

Aceste situații trebuie evitate. Pentru a face acest lucru, să corectăm codul nostru. Vom tăia posibilele spații suplimentare folosind funcția tunde, iar funcția va verifica corectitudinea adresei URL introduse pentru facebook preg_match. Astfel, întregul cod al fișierului form.php va arăta astfel:

Document fara titlu O nouă intrare a fost adăugată în baza de date!

"; ?>

Despre funcție preg_match:
Aceasta este o funcție pentru căutarea cu expresii regulate.

Primul parametru dintre paranteze este expresia regulată, al doilea este șirul de căutat.

Funcția returnează doar prima potrivire: 0 dacă nu există potriviri, 1 dacă există o potrivire.

Acum încercați să completați formularul în mod intenționat, punând spații inutile la începutul completării unuia dintre câmpuri și introducând adresa pentru facebook fără http:// sau introducând doar ID-ul facebook cu totul. Trimiteți o cerere, apoi intrați în baza de date și veți vedea că, în ciuda completării nu tocmai corecte, datele au exact forma de care avem nevoie.

Aici voi încheia această lecție. Puteți descărca toate fișierele acestei lecții în codul sursă (nu uitați să schimbați parametrii cu ai dvs. în fișierul connect.php).

Și în lecția următoare, vom învăța cum să extragem informații din baza de date MySql, selectați înregistrările doriteși afișați-le pe ecran. Pentru a nu rata următoarea lecție, abonați-vă la actualizările blogului folosind formularul de abonare pe care îl vedeți mai jos.

Lăsați-vă comentariile și împărtășiți-le prietenilor dvs. folosind butoanele rețelelor sociale.

Succes și ne vedem la următoarea lecție!

În acest tutorial, vom analiza cum să inserăm date în baza de date direct din scripturile PHP.

Inserarea datelor folosind SQL

Utilizați SQL pentru a insera date într-o bază de date în același mod în care utilizați SQL pentru a crea o bază de date și tabele. Sintaxa interogării SQL este:

INSERT INTO TableName (coloana 1, coloana 2, ...) VALORI(valoare1, valoarea 2, ...)

După cum puteți vedea, puteți actualiza mai multe coloane într-o singură instrucțiune SQL specificându-le într-o listă separată prin virgulă. Dar, desigur, puteți specifica și o singură coloană și o singură valoare. Coloanele care nu sunt menționate în instrucțiunea SQL dată vor rămâne goale.

Exemplu: inserarea unei persoane noi într-un tabel

În acest exemplu, folosim baza de date din lecția 18. Să presupunem că vrem să inserăm o persoană în baza de date. Ar putea fi Gus Goose cu numarul de telefon 99887766 si data nasterii 1964-04-20 .

Instrucțiunea SQL ar putea arăta astfel:

$strSQL = "INSERT INTO people(FirstNume, LastName, Phone, BirthDate) VALUES("Gus","Goose","99887766 ","1964-04-20");

După cum puteți vedea, instrucțiunile SQL pot fi destul de lungi și este ușor să pierdeți urma. Prin urmare, este mai bine să scrieți instrucțiunea SQL ușor diferit:

strSQL = „INSERT INTO people(”; strSQL = strSQL . "Nume"; strSQL = strSQL . "Numele de familie" strSQL = strSQL . "telefon"; strSQL = strSQL . "naștere)"; strSQL = strSQL . "VALORI("; strSQL = strSQL . ""Gus", "; strSQL = strSQL . ""Gâscă", "; strSQL = strSQL . ""99887766", "; strSQL = strSQL . „„1964-04-20””; mysql_query($strSQL) sau die(mysql_error());

Aici instrucțiunea SQL este construită prin împărțirea propoziției în părți mici și apoi combinându-le într-o variabilă $strSQL.

În practică, nu există nicio diferență în aplicarea unuia sau celuilalt, dar atunci când lucrați cu mese mari, capacitatea de a „ține evidența” devine extrem de importantă, așa că alegeți cea mai potrivită metodă.

Să încercăm să executăm următorul cod pentru a insera Gus Goose în baza de date:

Inserarea datelor în baza de date // Conectați-vă la serverul bazei de date mysql_connect("mysql.myhost.com", "utilizator", "sesame") sau die(mysql_error());// Selectați baza de date mysql_select_db("mydatabase") sau die(mysql_error()); // Construirea instrucțiunii SQL $strSQL = "INSERT INTO people("; $strSQL = $strSQL . "Nume"; $strSQL = $strSQL . "Numele de familie"; $strSQL = $strSQL . "telefon"; $strSQL = $strSQL . "Data de naștere)"; $strSQL = $strSQL . „VALORI(”; $strSQL = $strSQL . „Gus”, „; $strSQL = $strSQL . ""Gâscă", "; $strSQL = $strSQL . ""99887766", "; $strSQL = $strSQL . „„1964-04-20””; // Instrucțiunea SQL este executată mysql_query($strSQL) sau die(mysql_error()); // Închiderea conexiunii mysql_close(); ?>

DB actualizat!

Se salvează intrarea utilizatorului în DB

Probabil v-ați dat deja seama că puteți crea un formular pentru aceasta, ca în Lecția 11, iar valorile din formular pot fi inserate în instrucțiunea SQL. Să presupunem că ai formă simplă:

Acest formular este trimis într-un dosar insert.php unde, așa cum se arată în Lecția 11, puteți obține informațiile utilizatorului solicitând conținutul formularului. În acest caz particular, instrucțiunea SQL poate fi:

strSQL = "INSERT INTO people(FirstNume) values("" . $_POST["FirstName"] . "")"

În mod similar, puteți solicita date pentru cookie-uri, sesiuni, șiruri de interogări etc.

Cele mai frecvente greșeli pentru începători

La început, probabil că veți primi o grămadă de mesaje de eroare atunci când încercați să actualizați baza de date. Când lucrați cu o bază de date, nicio eroare nu este absolut inacceptabilă. O virgulă plasată incorect poate însemna că baza de date nu este actualizată și veți primi un mesaj de eroare. Mai jos descriem cele mai frecvente erori.

Tip de date nevalid

Este important ca datele și tipul de date al coloanei să se potrivească. Fiecare coloană poate conține date de un anumit tip. Următoarea captură de ecran arată tipurile de date ale tabelului „oameni” din exemplul nostru.

Se afișează o eroare dacă, de exemplu, încercați să inserați text sau un număr într-un câmp de date. Prin urmare, setați tipul de date cât mai precis posibil.

Cele mai frecvent utilizate tipuri de date sunt enumerate mai jos:

Sens Tip de date mărimea
CHR
Text sau o combinație de text și numere. Poate fi folosit și pentru numere care nu sunt utilizate în calcule (de ex. numere de telefon). Până la 255 de caractere - oricare lungime specificată în „Lungime”
TEXT
Blocuri mari de text sau o combinație de text și numere. Până la 65.535 de caractere
INT
Date numerice pentru calcule matematice. 4 octeți
DATA
Date în format AAA-LL-ZZ 3 octeți
TIMP
Ora în format hh:mm:ss 3 octeți
DATETIME
Data și ora în format AAA-LL-ZZ hh:mm:ss 8 octeți

Instrucțiuni SQL cu ghilimele sau barele oblice inverse

Dacă încercați să inserați text care conține ghilimele simple ("), ghilimele duble (") sau caractere backslash (\), înregistrarea nu va fi inserată în baza de date. Soluția este să înlocuiți barele oblice inverse înaintea caracterelor care ar trebui să fie mnemonizate atunci când sunt inserate în interogările bazei de date.