mysqli_query($conn, $sql) sau $conn->query($sql) (Programare, Php, Securitate, Oop, Mysqli, Procedural)

Ashwin K Joseph a intrebat.

Sunt nou în dezvoltarea web, în prezent nu folosesc niciun cadru.

Până acum, am folosit mysqli_query($conn, $sql) pentru a trimite o interogare către serverul MySQL.

Recent, am citit o altă tehnică care utilizează $conn - > query($sql).

Știu că $conn->query($sql) este modul OOP de a trimite o interogare și mysqli_query($conn, $sql) este metoda procedurală.

Nu am învățat încă PHP orientat pe obiecte Totuși, am de gând să îl învăț în curând înainte de a trece la un framework.

Ar putea cineva să-mi spună care sunt avantajele utilizării $conn->query($sql) față de mysqli_query($conn, $sql)? Este mai sigură? Mai are și altceva?

Știu că OOP este mai bun decât Procedural, dar aș vrea să știu care sunt principalele avantaje, din punct de vedere al securității(în principal)!

Comentarii

  • Aceeași diferență, cap sau coadă, moneda ta valorează la fel. Depinde de nevoia ta. părerea mea. Procedural pentru interogări scurte și ușoare. OOP atunci când trebuie să „lucrați” datele sau în scripturi mai lungi. Unii vor spune că Procedural este mai bun decât OOP și că nu ar trebui să folosiți OOP. Eu cred că OOP este mai ușor pentru un om să țină evidența variabilelor, dar opinia nu este un răspuns aici 😉 De dragul securității, aruncați o privire la vizibilitatea : php.net/manual/en/language.oop5.visibility.php –  > Por Louis Loudog Trottier.
  • când vine vorba de procedural VS OOP, în afară de vizibilitate, nu mă pot gândi la. Poate că mai mulți utilizatori profesioniști vor adăuga ceva la aceasta –  > Por Louis Loudog Trottier.
  • Dacă doriți să vorbiți despre securitate în interiorul mysqli, vă sugerez să verificați declarația pregătită. Acesta este un plus : php.net/manual/en/mysqli.quickstart.prepared-statements.php Și este tratat în mare parte în OOP –  > Por Louis Loudog Trottier.
2 răspunsuri
Bunul tău simț

Nici una, nici alta.

Trei puncte pentru a lămuri:

  1. Nu sunt multe de „învățat”. Obiectul sintaxa este la fel de prostească pe cât pare: doar o săgeată pentru a accesa o metodă sau o proprietate. Cu siguranță o cunoașteți deja.
  2. A doua opțiune vă aduce doar mai puțină tastare:

    mysqli_query($mysqli, $query);
    vs.
    $mysqli->query($query); 
    
  3. Oricum ar fi, ar trebui să folosiți PDO, nu mysqli

Știu că OOP este mai bun decât Procedural

Acest lucru este pur și simplu irelevant aici. Nu confundați programarea orientată pe obiecte cu sintaxa obiectelor. Prima este un subiect foarte complex, care necesită ani de zile pentru a fi învățat și nu veți reuși nici pe departe să o obțineți prea curând. În timp ce sintaxa obiectelor este doar o sintaxă – nici mai mult, nici mai puțin. Nimic prea complicat de care să vă faceți griji și nici beneficii dramatice

Khairul Alam

„OOP este mai bună decât programarea procedurală” – aș spune că depinde. Dacă vorbim despre performanță, atunci da, OOP este eficientă și mai organizată decât programarea procedurală. Dacă construiți un proiect complex de mari dimensiuni, atunci OOP este calea de urmat. Cu toate acestea, dacă vorbim despre securitate, atunci metoda de programare procedurală este la fel de sigură ca și metoda OOP. Mai ales dacă folosiți PDO. Atunci când folosiți PDO, folosiți caractere de poziție numite în loc să treceți variabilele direct în interogare, ceea ce ajută la prevenirea atacurilor precum SQL Injection. Iar dacă folosiți PDO, nu trebuie să vă curățați singuri intrările (eliminând codarea suplimentară), deoarece PDO se ocupă de acest lucru.

V-aș recomanda să începeți să învățați cu PDO pentru că urmează stilurile de programare orientată pe obiecte, astfel încât, dacă începeți cu el, veți fi deja cu un pas înainte când veți începe să scrieți cod în OOPHP. Sper să vă fie de ajutor.