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

[PHP] HOWTO: cFormsDb_Sql

Messaggio 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 =)

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: [PHP] HOWTO: cFormsDb_Sql

Messaggio 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?

Avatar utente
nuitari
Linux 3.x
Linux 3.x
Messaggi: 777
Iscritto il: dom 14 ott 2007, 12:51
Slackware: 12.0
Località: San Colombano al Lambro
Contatta:

Re: [PHP] HOWTO: cFormsDb_Sql

Messaggio 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

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: [PHP] HOWTO: cFormsDb_Sql

Messaggio 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

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: [PHP] HOWTO: cFormsDb_Sql

Messaggio 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 ;-)

Avatar utente
nuitari
Linux 3.x
Linux 3.x
Messaggi: 777
Iscritto il: dom 14 ott 2007, 12:51
Slackware: 12.0
Località: San Colombano al Lambro
Contatta:

Re: [PHP] HOWTO: cFormsDb_Sql

Messaggio 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.

Rispondi