Adăugarea datelor în PHP. O lecție specială pentru începători Formular pentru adăugarea unei intrări la baza de date php

Adăugarea datelor în PHP. O lecție specială pentru începători Formular pentru adăugarea unei intrări la baza de date php

Toate modulele site-ului sau suplimentelor web, în ​​care trebuie să introduceți și să înregistrați date (de exemplu, nume, vârste, adrese etc.) folosesc o funcție simplă în limbajul mysql INSERT INTO `name_base` (nume, valoare1, valoare2) ) VALORI ('Vasya' ,'1','2');

Toate modificările sunt introduse în baza de date conform valorilor care au fost specificate în primele brațe. Este important să codificați scriptul de colectare, baza de date și fișierul de configurare. Bazhano vikoristuvat cea mai largă codificare UTF-8.

Există două moduri de a crea o piesă care poate fi scrisă pe bază.

Prima metodă Pentru că nu specificăm prenumele în mijlocul tabelului bazei de date. Prin urmare, suntem responsabili pentru recectarea tuturor modificărilor pentru centrul pielii și în câte centre există în tabelul bazei de date, același număr de modificări poate fi recectat pentru brațe după valoarea VALUE.

De exemplu:
Tabelul bazei de date are multe medii. De asemenea, după elementul VALOARE (..), toate modificările vor fi refăcute în brațe. Și încă un punct: dacă modificarea nu se modifică, acest parametru neobligatoriu este permis. Apoi scriem pur și simplu semnificații goale în labele „”,

„INSERT INTO `name_base` VALUES (NULL, `".$name."`,``,`2`)"; // A treia valoare goală este scrisă în labe

Ale se spală cu porții mici. Dacă adăugați un articol sau două elemente la tabelul bazei de date, acesta va fi adăugat înapoi. Pentru că în această metodă se combină amestecul tuturor preparatelor de mijloc.

Altă cale Dacă tastați INSERT INTO `name_base` (…) pentru a reintroduce toate intrările după numele bazei de date. Fundul a fost deja privit puțin. Dacă am uitat, să scriem din nou:

„INSERT INTO `name_base`(`nume`,`valoare`,`valoare2`) VALORI (NULL, `".$nume."`,``,`2`)";

Aici am revândut toate com-urile (nume, valoare1, valoare2). Dacă adăugați încă două intrări la tabelul bazei de date, nu veți putea modifica sintaxa interogării. Doar pentru că nu trebuie să adăugăm într-o singură băutură aceleași modificări suplimentare de care avem nevoie pentru aceste noi creații ale mijlocului.

Acest tip de avertizare apare chiar și des după o modificare minoră pe site. De exemplu, administratorul a adăugat un cont suplimentar la baza de date, de exemplu status. Dar editorul de script nu a reușit să schimbe modulul sau pur și simplu a uitat. Toate aceste site-uri au o structură foarte complexă și poate dura mult timp și energie pentru a găsi o soluție. De aceea voi scrie o altă metodă în baza de date. Pentru a realiza acest tip de soluție, programele bazate pe web sunt mai des folosite.

Intrarea PHP în baza de date mysql. Mucuri practice

Ei bine, acum am ajuns la esența muncii cu interogări la baza de date. Totul funcționează pe stocuri practice. Să creăm un script simplu pentru înregistrarea comentariilor care vor contribui la site.

Pentru început, să creăm tabelul msg în baza de date folosind câțiva pași din mijloc. Scriem mai întâi comentariile id. Numărul de caractere din mijloc este de până la zece caractere cu parametrul de auto-increment. Acest parametru este schimbat automat atunci când un comentariu de skin este adăugat la +1.

Vine vânzarea numelui proprietarului. Număr de caractere – până la două – trei sute de caractere la alegere, parametru char. Apoi caseta de comentarii - textul comentariului în sine este introdus în această casetă. Dacă doriți să înregistrați texte mari de comentarii, atunci puteți seta parametrul text - puteți introduce, de asemenea, texte pur și simplu mari, mai mult de cinci sute de mii de caractere, sau puteți seta parametrul tinytext, atunci puteți introduce câteva caractere mai puțin, dar este va lua doar câteva caractere mai puțin.

Dar, în opinia noastră, ne vom respecta mamele pentru ca profesorii noștri să nu scrie texte grozave. În plus, două mii de caractere sunt combinate și fixate cu parametrul varchar pentru a înregistra valorile rândurilor.

În mijlocul rămas, scrieți data intrării în textul comentariului. Scrieți în format numeric în secunde, folosind data fluxului suplimentar și funcția oră time(); Pentru simplitate, funcția va fi setată la $time=time(); Fac mijlocul în baza de date. Și anume timpul cu parametrul int (pentru valori numerice). Să notăm numărul de caractere - mai degrabă unsprezece (cu o marjă mică pentru Mayday :-).

Evacuarea datelor ofensive:

Structura tabelului `msg` -- CREATE TABLE IF NOT EXISTS `msg` (`id` int(10) NOT NULL AUTO_INCREMENT, `name` char(250) NOT NULL, `coment` varchar(2000) NOT NULL, `time` int(11) NOT NULL, CHEIE PRIMARĂ (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Am creat un tabel pentru comentarii. Acum scriem un formular pentru a scrie un comentariu și scenariul în sine. Codul HTML al formularului pentru a face comentarii la evenimentele viitoare.

Viziunea autorului: Eh, nu o poți scoate din cântecul cuvintelor! De asemenea, le puteți șterge, actualiza sau introduce altele. Golovnya, astfel încât cuvintele să fie introduse în baza de date. Astăzi știm cum să înregistrăm datele MySQL și cum să le facem corect, astfel încât melodia să sune!

Adăugarea înregistrărilor pentru ajutor phpMyAdmin

În shell-ul phpMyAdmin pentru administrarea DBMS MySQL, a fost implementată o funcționalitate „îmbunătățită” pentru adăugarea de noi înregistrări la tabelul bazei de date. Datorită simplității sale, este ideal atât pentru „manechinii” verzi, cât și pentru profesioniștii „gheții”.

Pentru a adăuga informații noi în tabel, accesați programul cu drepturi de administrator. Apoi, din listele răului, selectați baza de date și tabelul necesare. Apoi, în meniul de sus, parcurgeți elementul „Inserare”.

După aceasta, pentru a crea o înregistrare în baza de date MySQL, amintiți-vă în fereastra următoare pentru toate intrările din câmpul „Valori” și faceți clic pe „OK” în partea de jos.

În captura de ecran de mai sus puteți vedea că tabelul „Animale”, care este în curs de modificare, este format din două coloane (câmpuri): id și nume. Într-o altă secțiune este indicat tipul de afecțiune a pielii. Trebuie doar să introducem valori pentru câmpul de nume, deoarece id-ul este cheia primară, iar incrementarea automată este setată pentru tabelul nou creat. Aceasta înseamnă că valorile câmpului id vor fi generate automat de MySQL, până la valoarea numerică întreagă principală de 1.

Pentru a afla ce câmp de înregistrare a datelor MySQL este cheia primară, în phpMyAdmin accesați meniul (când selectați tabelul de conținut din listă) la fila „Structură” din meniul de sus. Aici puteți găsi o descriere a tuturor câmpurilor din tabel, tipul acestora și caracteristicile suplimentare.

Inserarea datelor folosind interogări SQL suplimentare

Ale phpMyAdmin este doar un shell shell, iar administratorii lucrează cu serverul MySQL pentru interogări suplimentare de structurare a limbajului. Apoi puteți „distrage” atenția mea SQL de la el. Deci, deoarece suntem adevărați profesioniști, suntem puțin „forajați” în dezvoltarea comenzilor SQL în cadrul celor care sunt luate în considerare. Axa este pornită, prin introducerea acestui câmp SQL, veți crea aceeași bază de date:

CREATE TABLE Animal (ID MEDIUMINT NOT NULL AUTO_INCREMENT, nume CHAR(30) NOT NULL, PRIMARY KEY (id));

CREATE TABLE Animal (ID MEDIUMINT NOT NULL AUTO_INCREMENT ,

nume CHAR (30) NOT NULL, CHEIE PRIMARĂ (id));

După crearea tabelului și înregistrarea datelor în baza de date MySQL (prin fila „Inserare”), programul vă va informa că la animale a fost adăugat un rând de valori ID 1. Și câteva minute mai jos fereastra editorului va afișează codul pe care shell-ul l-a generat și trimis către serverul B D .

Codul va fi:

INSERT INTO `my_db1`.`animal` (`id`, `name`) VALORI (NULL, "Cat");

INSERT INTO `my_db1`. `animal` (`id`, `nume`) VALORI (NULL, "Cat");

Să citim mai multe despre asta. În SQL, pentru a insera un nou rând într-un tabel, se folosește operatorul INSERT. Acest lucru notifică serverul că tabelul bazei de date (my_db1 . animal) trebuie să insereze valori (VALUES (NULL, 'Cat')) în câmpurile id și nume.

Vă rugăm să rețineți că secțiunea id nu este o valoare numerică, ci NULL, pentru care am activat auto-completarea (auto-increment).

Cum să inserați o înregistrare pentru ajutor suplimentar PHP

Tot ceea ce ne uităm este doar un „preludiu” la acțiunea principală, în care intră în scenă cel mai înalt nivel de programare PHP pe partea de server. În cea mai mare parte, MySQL ca DBMS a dezvoltat o astfel de expansiune în Merezhi.
Conexiunea dintre aceste două tehnologii de internet a inspirat majoritatea internetului din lume. Oriunde te uiți, le vei vedea: în CMS-urile actuale, motoarele „scrise acasă” și pe server.

Nu este surprinzător faptul că MySQL PHP oferă multe funcții utile pentru înregistrarea datelor. Ale mi zupinimos pe cele mai importante dintre ele. Axa este codul care adaugă o nouă „creatură” la tabelul cu animale. Dacă te străduiești din greu, poți prinde un animal întreg în acest fel :)

$con_str=mysql_connect("localhost", "root", "", "db1"); if(mysql_connect("localhost","root"))( echo "Bună ziua!!"; ) mysql_select_db("db1",$con_str); $query_str="INSERT INTO `db1`.`animal` (`id`, `nume`) VALORI (NULL, "câine"); mysql_query($query_str); mysql_close();

$con_str = mysql_connect("localhost", "root", "", "db1");

if (mysql_connect ("localhost", "root")) (

ecou "Bună ziua!!" ;

mysql_select_db("db1", $con_str);

$query_str = „INSERT INTO `db1`.`animal` (`id`, `name`) VALORI (NULL, „câine”)”;

mysql_query($query_str);

mysql_close();

Acest cod trebuie inserat într-un fișier PHP și plasat pe partea serverului.

Funcția suplimentară mysql_connect() ne permite să ne conectăm la serverul de baze de date MySQL. Ca argumente, funcția acceptă gazda, numele serverului DBMS, parola și numele bazei de date la care trebuie să vă conectați. Am introdus o parolă goală, așa că instalăm serverul vikory pe mașina locală (client).

Pentru a demonstra toate aplicațiile, scriind în baza de date MySQL folosind PHP suplimentar, am creat un „capel de gentleman” din Denver. Acesta include un server Apache local, un server MySQL, phpMyAdmin și o serie de alte caracteristici utile pentru crearea și testarea codului programului.

Apoi, într-un bloc logic, am verificat autenticitatea conexiunii la serverul bazei de date. După aceea, funcția mysql_select_db() a desemnat baza de date la care ne vom conecta. Pentru funcția suplimentară mysql_query(), am lansat o căutare pentru interogări SQL, înregistrări în variabila $query_str. Și în cele din urmă, conexiunea instalată a fost închisă (funcția mysql_close()). Acum, dacă aruncăm o privire la masa noastră pentru animale (masa pentru animale), putem vedea un nou „vikhovant” acolo.

Pentru aceasta, îl voi scrie în MySQL PHP „cu drag” adăugând tot setul necesar de funcții. Este păcat de ce începătorii se plâng de erorile SQL din codul programului - ortografie incorectă a interogărilor, sintaxa ruptă și tipărirea greșită a caracterelor pentru evadare.

Pentru a evita apariția unui păr ciudat „gri” pe cap, este mai bine să verificați corectitudinea ortografiei cu ajutorul phpMyAdmin. Pentru a face acest lucru, plasați codul SQL în editorul de program și rulați-l în contul dvs. Dacă nu este cazul, atunci programul va continua să „latre”, rezultând înștiințarea culorii roșii și, în fiecare caz, nevoia de milă.

După cum știți, cu ajutorul MySQL vă puteți colecta animalul și puteți schimba corect cuvintele oricărui cântec. Și PHP este ideal pentru a scrie în baza de date MySQL, așa că ne-am dori să stabiliți o prietenie „strânsă” cu programul meu „marele”!

În această lecție ne vom uita la modul de inserare a datelor în baza de date direct din scripturile PHP.

Inserarea datelor din wiki-uri 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 un tabel într-o bază de date. Sintaxa interogării SQL este:

INSERT INTO Nume tabel (fogazuri1, aragazuri 2, ...) VALORI(valoare1, valoarea 2, ...)

După cum puteți vedea, puteți adăuga mai multe instrucțiuni într-o singură instrucțiune SQL, arătându-le într-o listă separată. Desigur, puteți specifica doar un aspect și un sens. Orice nu este specificat în această instrucțiune SQL va fi lăsat necompletat.

Exemplu: inserarea unei persoane noi în tabel

A cărui aplicație este un DB vikoryst din lecția 18. Să presupunem că vrem să inserăm o persoană în baza de date. Tse mozhe buti Gus Goose cu numarul de telefon 99887766 acea întâlnire cu oamenii 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 mai lungi și puteți utiliza cu ușurință o urmă. Este mai bine să scrieți instrucțiunea SQL puțin diferit:

strSQL = „INSERT INTO people(”; strSQL = strSQL. "Nume,"; strSQL = strSQL. "Nume" 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 operatorul SQL va fi împărțit în părți mici, cu combinația ulterioară a acestora la schimbare $strSQL.

În practică, nu există nicio diferență între o metodă și alta, dar atunci când lucrați cu mese mari este extrem de important să „tuiați urma”, așa că alegeți cea mai potrivită metodă.

Să încercăm să eliminăm codul ofensator pentru inserarea Gus Goose în baza de date:

Inserarea datelor din baza de date // Conexiune cu serverul bazei de date mysql_connect("mysql.myhost.com", "user", "sesame") sau die (mysql_error());// Vibir DB mysql_select_db("mydatabase") sau die(mysql_error()); // Operatorul SQL Pobudov $strSQL = "INSERT INTO people("; $strSQL = $strSQL. "Nume,"; $strSQL = $strSQL. "Nume"; $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”); // Operatorul SQL concatenează mysql_query($strSQL) sau die(mysql_error()); // Conexiune închisă mysql_close(); ?>

DB actualizat!

Salvarea intrării de koristuvach în baza de date

Poate că v-ați dat deja seama că puteți crea un formular pentru aceasta, ca în Lecția 11, iar valorile formularului pot fi inserate într-o instrucțiune SQL. Să presupunem că aveți o formă simplă:

Acest formular este utilizat în dosar insert.php, după cum se arată în Lecția 11, puteți anula intrarea corespondentului solicitând în schimb un formular. În acest caz, instrucțiunea SQL ar putea fi cam așa:

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

În același mod, puteți solicita date de la un cookie, puteți solicita un rând curent etc.

Cea mai mare expansiune a recoltării porumbului

De acum înainte, este posibil să puteți vedea o grămadă de notificări despre erori atunci când încercați să actualizați baza de date. Orice fel de furt este absolut inacceptabil atunci când ai de-a face cu baza de date. Comă plasată incorect poate însemna că baza de date nu este actualizată și că nu primiți notificări despre descărcare. Mai jos descriem cele mai extinse beneficii.

Tip de date greșit

Este important ca tipul de date furnizate să fie partajat între ei. Specialistul în piele se poate răzbuna pe tipul de cântat. Următoarea captură de ecran arată tipurile de date ale tabelului „oameni” din exemplul nostru.

Se pare că există o problemă dacă, de exemplu, încercați să introduceți text sau un număr în câmpul de date. Acum, vă rugăm să setați tipul de date pentru a fi mai precis.

Cele mai vii tipuri de date sunt prezentate mai jos:

Semnificaţie Tip de date Rozmir
CHR
Text și combinație de text și numere. De asemenea, poți fi învingător pentru numere, dar nu învingător pentru ora dezvelirii (de exemplu, numere de telefon). Până la 255 de caractere - sau dublu, care este indicat de „Lungime”
TEXT
Blocuri mari de text sau combinații de text și numere. Până la 65.535 de caractere
INT
Date numerice pentru calcule matematice. 4 octeți
DATA
Date în format PPP-MM-DD 3 octeți
TIMP
Format oră hh:mm:ss 3 octeți
DATETIME
Data și ora în format PPP-LL-ZZ hh:mm:ss 8 octeți

Operatori SQL cu pad-uri sau bare oblice

Dacă încercați să inserați text folosind simbolurile piciorului simplu ("), piciorul dublu ("") sau bară oblică inversă (\), înregistrarea nu va fi inserată în baza de date. Soluția va fi să inserați bare oblice finale înaintea simbolurilor care urmează să fie modificate la inserarea într-o înregistrare a bazei de date.

Ultima actualizare: 1/11/2015

Pentru a adăuga date, utilizați virusul „INSERT”:

$query ="INSERT INTO products VALUES(NULL, "Samsung Galaxy III","Samsumg"");

Virusul „INSERT” inserează un rând în tabel. După cuvântul cheie INTO, este indicat numele tabelului, iar după VALORI, valorile tuturor coloanelor sunt indicate în brațe. Deoarece avem trei coloane în tabel, indicăm trei valori.

Deoarece în ultimul subiect, când a fost creat tabelul, am indicat disponibilitatea coloanelor: id, nume, companie, atunci în acest câmp se transmite valoarea NULL pentru coloana id, pentru nume - „Samsung Galaxy III”, și pentru companie - „Samsumg”.

Dacă valorile id sunt setate la AUTO_INCREMENT, atunci nu trebuie neapărat să specificăm o valoare numerică pentru această variabilă și putem trece o valoare NULL, iar MySQL atribuie această valoare unei astfel de valori accesibile.

Acum să aruncăm o privire la adăugarea datelor de la fund. Dosar solubil creați.php cu pasul urmator:

Date adăugate"; ) // închide conexiunea mysqli_close($link); ) ?>

Adăugați un model nou

Introduceți modelul:

Virobnik:

Iată codul de interacțiune cu baza de date de conexiuni cu funcționalitatea formularelor: după formulare suplimentare, introducem date pentru a le adăuga la baza de date.

Securitate MySQL

Am vikorizat funcția mysqli_real_escape_string(). Este folosit pentru a captura de ecran caracterele dintr-un rând, care sunt apoi folosite în instrucțiunea SQL. Modul în care sunt afișați parametrii este obiectul de conexiune și rândul care trebuie ecranat.

Astfel, scăpăm de caractere în două moduri: mai întâi pentru virusul SQL folosind funcția suplimentară mysqli_real_escape_string(), iar apoi pentru html folosind funcția suplimentară htmlentities(). Acest lucru ne permite să ne protejăm de două tipuri de atacuri: atac XSS și injecție SQL.

Ne vom uita la aceste statistici, poate unele dintre cele mai importante interogări SQL. Tse interogare pentru înregistrări suplimentare din tabelul bazei de date. Așchiile se întâmplă atât de des adăugați noi înregistrări la tabel, și funcționează automat, apoi acest material este legat de rană.

Pentru cob Interogare SQL pentru a adăuga o nouă înregistrare la tabel:

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

Când adăugați o înregistrare, comanda " INTRODU IN", apoi numele tabelului în care este introdus înregistrarea. Apoi, mergeți la brațele rotunde și denumiți câmpurile pe care doriți să le completați. Și apoi la brațele rotunde după cuvinte valorileÎncepem să supraestimăm valorile câmpurilor pe care le-am ales. După această intrare, o nouă intrare va apărea în tabelul nostru.

Inode necesare actualizați intrarea tabelului pentru cine este venirea interogare SQL:

UPDATE utilizatorii SETează login="TestUser2", pass="1234560" WHERE login="TestUser"

Acesta este mai pliabil, datorită designului său " UNDE", puțin mai puțin despre ea. Să mergem acum, echipă" ACTUALIZAȚI", apoi numele tabelului și după " A STABILIT Descriem valorile tuturor câmpurilor pe care dorim să le schimbăm. Dacă totul ar fi simplu, dar mâncarea s-a oprit: Și ce fel de înregistrare ar trebui să urmezi?„Pentru cine este necesar” UNDE". În acest câmp actualizăm înregistrarea, câmpul" log in"ce are sens" TestUser Vă rugăm să rețineți că, dacă există doar câteva astfel de înregistrări, atunci absolut totul va fi actualizat! Este foarte important să înțelegeți acest lucru, altfel riști să-ți irosești masa.

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

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

Danemarca interogare SQL actualizați acele înregistrări, id sunt mai putini 15 І camp " log in"poate conta" TestUser„Sper că ai înțeles designul” UNDE", asta este și mai important. La fel " UNDE„Vikorist la selectarea înregistrărilor din tabel, iar aceasta este problema care se întâlnește cel mai des atunci când lucrați cu baze de date.

Eu, in sfarsit, simplu Interogare SQL pentru o serie de înregistrări dintr-un tabel:

DELETE FROM users WHERE login="TestUser2"

După comanda " ȘTERGERE DIN„Mergeți la tabelul în care trebuie să ștergeți înregistrările. În continuare, descriem construcția „UNDE”. Dacă înregistrarea este acceptabilă pentru mințile descrise, va fi ștearsă. Din nou, câștigați respect, în funcție de numărul de înregistrări, satisfaceți mintea dupa" UNDE„, poți ieși oricum din cauza puterii lor.

 

 

Tse tsikavo: