Repository 32bit  Forum
Repository 64bit  Wiki

[PHP] HOWTO: cFormsDb_Sql

Usate questo forum per proporre nuovi articoli, creare gruppi di lavoro, segnalare problemi, collaborare in genere al progetto Wikislacky.

Moderatore: Staff

Regole del forum
1) Citare l'eventuale nome e link dell'articolo della wiki.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[PHP] HOWTO: cFormsDb_Sql

Messaggioda nuitari » mar gen 22, 2008 18:53

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 =)
Avatar utente
nuitari
Linux 2.6
Linux 2.6
 
Messaggi: 777
Iscritto il: dom ott 14, 2007 11:51
Località: San Colombano al Lambro
Slackware: 12.0

Re: [PHP] HOWTO: cFormsDb_Sql

Messaggioda conraid » mar gen 22, 2008 19:04

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?
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12023
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: [PHP] HOWTO: cFormsDb_Sql

Messaggioda nuitari » mar gen 22, 2008 19:10

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
Avatar utente
nuitari
Linux 2.6
Linux 2.6
 
Messaggi: 777
Iscritto il: dom ott 14, 2007 11:51
Località: San Colombano al Lambro
Slackware: 12.0

Re: [PHP] HOWTO: cFormsDb_Sql

Messaggioda conraid » mar gen 22, 2008 19:23

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
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12023
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: [PHP] HOWTO: cFormsDb_Sql

Messaggioda conraid » mar gen 22, 2008 19:27

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 ;-)
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12023
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: [PHP] HOWTO: cFormsDb_Sql

Messaggioda nuitari » mar gen 22, 2008 19:51

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.
Avatar utente
nuitari
Linux 2.6
Linux 2.6
 
Messaggi: 777
Iscritto il: dom ott 14, 2007 11:51
Località: San Colombano al Lambro
Slackware: 12.0


Torna a Wikislacky

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti