Pagina 1 di 1

[PHP] HOWTO: cFormsDb_Sql

Inviato: mar 22 gen 2008, 18:53
da nuitari
Ho pubblicato un altro articolo su un pezzo del mio framework, comunque usabile a parte come ho specificato nell'articolo

http://www.slacky.eu/wikislack/index.ph ... ormsDb_Sql

ditemi che ve ne pare =)

Re: [PHP] HOWTO: cFormsDb_Sql

Inviato: mar 22 gen 2008, 19:04
da conraid
nuitari ha scritto:Ho pubblicato un altro articolo su un pezzo del mio framework, comunque usabile a parte come ho specificato nell'articolo

http://www.slacky.eu/wikislack/index.ph ... ormsDb_Sql

ditemi che ve ne pare =)
Cosa ha in più della classe mysqli facente parte direttamente di PHP?

Re: [PHP] HOWTO: cFormsDb_Sql

Inviato: mar 22 gen 2008, 19:10
da nuitari
1) quando ho fatto questa classe non esisteva mysqli e comunque questa funziona anche dove mysqli non è presente

2) mi auto-quoto le parti rilevanti ai fini di risponderti dalla sinossi

* include funzioni trasparenti di bufferizzazione dei risultati per permettere la riduzione dell'overhead sul server
* permette di gestire la connessione al Database on-demand, in modo da ridurre il carico sul server
* permette di lavorare su più connessioni / database contemporaneamente in modo del tutto trasparente
* include una gestione degli errori centralizzata e parametrizzabile
* include un meccanismo di logging degli eventi utile ai fini del debug
* include una funzione di escaping per evitare l'SQL injection
* è perfettamente integrata con l'oggetto cFormsData, parte del framework Forms, il quale permette di gestire in modo del tutto trasparente l'internazionalizzazione e la conversione dei dati

Re: [PHP] HOWTO: cFormsDb_Sql

Inviato: mar 22 gen 2008, 19:23
da conraid
Premetto che la mia era una domanda puramente di curiosità visto che non ho mai approfondito l'estensione mysqli come si deve, visto che è un paio di anni che non ci metto mano ed ho iniziato a guardarla proprio in questo periodo.
E siccome se te lo chiedevo in privato, magari altri utenti potevano avere lo stesso dubbio... l'ho posta qui
nuitari ha scritto:1) quando ho fatto questa classe non esisteva mysqli e comunque questa funziona anche dove mysqli non è presente
Fin qui ok
nuitari ha scritto: 2) mi auto-quoto le parti rilevanti ai fini di risponderti dalla sinossi
Come sei difficile :p

nuitari ha scritto:

* include funzioni trasparenti di bufferizzazione dei risultati per permettere la riduzione dell'overhead sul server
* permette di gestire la connessione al Database on-demand, in modo da ridurre il carico sul server
* permette di lavorare su più connessioni / database contemporaneamente in modo del tutto trasparente
* include una gestione degli errori centralizzata e parametrizzabile
* include un meccanismo di logging degli eventi utile ai fini del debug
* include una funzione di escaping per evitare l'SQL injection
* è perfettamente integrata con l'oggetto cFormsData, parte del framework Forms, il quale permette di gestire in modo del tutto trasparente l'internazionalizzazione e la conversione dei dati
L'escaping mi sembra che ce l'ha anche mysqli, la bufferizzazione non è trasparente ma va indicata... oh correggimi se sbaglio.
On-demand mi sfugge il meccanismo
Il logging di eventi non lo so
L'ultima cosa... va beh, quello è un altro discorso.

Poi me la studio con calma

Re: [PHP] HOWTO: cFormsDb_Sql

Inviato: mar 22 gen 2008, 19:27
da conraid
nuitari ha scritto:Ho pubblicato un altro articolo su un pezzo del mio framework, comunque usabile a parte come ho specificato nell'articolo

http://www.slacky.eu/wikislack/index.ph ... ormsDb_Sql

ditemi che ve ne pare =)

Non ho capito una cosa.
Hai fatto l'esempio con MySQL ma tratta anche altri DB?

UPDATE:
$db->jumpToPage();
Lo uso dopo un LIMIT? o serve quando prendo tutti i dati e _dopo_ voglio prenderli tipo LIMIT
Spero di essermi spiegato, scusa per la domanda scema :-)

P.S.
Ho visto che sono ancora nei credits... thanks, anche se sinceramente questa volta niente debugging... ancora ;-)

Re: [PHP] HOWTO: cFormsDb_Sql

Inviato: mar 22 gen 2008, 19:51
da nuitari
Eheh tranqui ^^ la mia risposta era solo frettolosa =)

Dunque, il concetto è: perchè chiamare una funzione "connetti" quando puoi chiamare "mysql_connect"?
Perchè 1) mysql_connect è relativa a mysql e basta, se cambi dbms devi cambiare tutto il codice non solo un include, on opzione od un interfaccia 2) perchè fare interfacce per l'api è comodo, poichè attorno ci metti il tuo codice, personalizzato. Metti anche solo per la gestione degli errori.

L'escaping lo fa anche un api mysql se per questo, non solo mysqli. Il fatto è che anche in questo caso si tratta di incapsulare il codice. Ad esempio se leggi l'howto la mia funzione gestisce anche i null e la conversione dei dati, tutto in un colpo solo.

On demand significa che la classe chiude ed apre la connessione (quando non è persistente ofc) a seconda delle operazioni, su richiesta, in modo automatico. Chiami ->query e query in un unico colpo crea la connex, seleziona il db ed esegue la query, etc etc

Lo stesso dicasi per la gestione degli errori e via dicendo.

Per quanto riguarda jumpToPage, è successiva al limit. Il limit permette di restringere i risultato di una query (ed ha dei limiti intrisechi sul numero di record gestibili se non erro), jumpToPage permette di *saltare* ad un punto preciso di un recordset usando una logica a pagine invece che a record.