[Php-it] [OT?] Comportamento strano
Simone Volpini
simonevolpini at yahoo.it
Mon Mar 12 11:39:37 CET 2007
Domenico L. ha scritto:
>> Simone ha scritto:
>>
>> Non lo faccio transazionalmente.
>> Siccome non devono essere unici, come chiave primaria utilizzo un id
>> autoincrementante.
>>
>
> scusa come fai a dirmi che devono essere unici e devono non esserlo al
> tempo stesso? non credo di aver capito....
Nel senso che si potrebbe verificare che esista un altro messaggio
avente lo stesso titolo, nome utente e ip. Il nome utente è un "varchar"
(il forum non richiede registrazione).
Che faccio metto "unique index" sul campo del messaggio che è di tipo
"text"?
> Dov'è la transazionalità? Che DB stai utilizzando? che funzione è query?
Come ti dicevo prima, la transazionalità non c'è. Sto utilizzando MySQL
4.0.x con tabelle di tipo MyIsam.
La funzione query utilizza le classi MDB delle PEAR e funziona
correttamente (la utilizzo anche in altri casi).
Comunque ecco il codice:
function query($sql, $mode = 'all', $querydescription = '')
{
global $oDb;
$oRes = $oDb->query($sql);
if (MDB::isError($oRes)) die ($oRes->getMessage());
switch($mode){
default:
case 'all': return $oDb->fetchAll($oRes, MDB_FETCHMODE_ASSOC);
case 'row': return $oDb->fetchRow($oRes, MDB_FETCHMODE_ASSOC);
case 'one': return $oDb->fetchOne($oRes);
}
}
> scusa ma così si capisce poco... però una considerazione posso farla
> ugualmente contare il numero di messaggi provenienti da un ip/nome
> utente non è una gran cosa....
Infatti non è il massimo. Questo controllo l'ho messo solo per bloccare
questi inserimenti multipli, ed è per questo motivo che controllo oltre
al nome e all'ip anche il titolo e il corpo del messaggio.
> Inoltre sei sicuro che cont ritorni il count e non un puntatore allo
> statement? in questo caso $cont ==0 è sempre verificato
Funziona. Testata + volte :)
> Oltre a ciò se ci sono tante chiamata a questa pagina forse è la pagina
> che la richiama ad avere un errore
Sto riverificando anche quella.
Simone
More information about the Php-it
mailing list