Neurochirurgie minim invazivă
"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv. Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice. www.neurohope.ro |
[CODE REVIEW] PDO Prepared Statements
Last Updated: Jan 31 2015 17:31, Started by
sftpdt
, Jan 31 2015 11:40
·
0
#1
Posted 31 January 2015 - 11:40
Salut.
Până acum foloseam pentru interogări sintaxe gen $query = $this->DB->prepare('INSERT INTO `tabel` ( `nume`, `prenume`, `varsta` ) VALUES ( ?, ?, ? ) '); $query->bindValue(1, 'Lefter'); $query->bindValue(2, 'George'); $query->bindValue(3, 22); $query->execute(); Însă am văzut scripturi care foloseau diverse funcţii pentru diverse tipuri de interogări (insert, update, delete, select, etc), şi am zis să fac şi eu să văd ce-mi iese (mai ales că sunt începător în PHP). Ce am făcut pentru INSERT arată cam aşa: public function insert ( $tableName, $values ) { if ( empty ( $tableName ) or !is_array ( $values ) ) { die ("PDO Error on insert"); } else { $HTML = ""; $preparedQuery = "INSERT INTO `$tableName` ( "; $valuesName = ""; $valuesContent = ""; foreach ( $values as $name => $content ) { $valuesName .= "`{$name}`, "; $valuesContent .= ":{$name} , "; } $valuesName = substr( $valuesName, 0, -2 ) . " "; $valuesContent = substr( $valuesContent, 0, -2 ) . " "; $preparedQuery .= $valuesName . " ) VALUES ( " . $valuesContent . ")"; $query = $this->connection->prepare( $preparedQuery ); $HTML .= $preparedQuery . "<br>"; foreach ( $values as $name => $content ) { $query->bindValue( ":{$name}", "{$content}" ); } $query->execute(); } } Funcţia am testat-o cu ceva mai simplu: $this->DB->insert( 'members', array( 'name' => 'sftpdt', 'password' => '12dsudhedfefe', 'email' => '[email protected]', 'member_group_id' => 3, 'joined' => 16854521521, 'ip' => '192.168.1.1', 'pass_hash' => 'qwasdftyyui' )); Şi văd că îşi face treaba . Poate fi îmbunătăţit codul? Până diseară sper să termin şi celelalte. Edited by sftpdt, 31 January 2015 - 11:42. |
#2
Posted 31 January 2015 - 11:45
Mai repede as cauta sa abstractizez accesul la date de restul aplicatiei. Creezi un repository cu diveerse functii gen getArticles(), saveArticle() si doar in interiorul lui ai treaba cu db-ul. Restul aplicatiei nici nu stie unde se duc datele/de unde provin, stie doar ca ai clase care le modeleaza (Article) si un repository care stie ce sa faca cu ele.
Daca vrei sa abstractizezi mai mult accesul la db, foloseste un ORM. |
#3
Posted 31 January 2015 - 14:54
De ce ai face o metoda pentru fiecare ? De ce sa nu faci una pentru toate?
Exemplu: http://pastebin.com/93MjA40z O folosesti foarte usor, exemplu: Database::query('INSERT....', array($parametru1, $parametru2, $parametruX)); Edited by Ruben56, 31 January 2015 - 14:55. |
#4
Posted 31 January 2015 - 15:33
de vreme ce ai acess la toate, risti sa expui baza de date
|
#5
Posted 31 January 2015 - 16:54
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users