Decrementare numero nel db: meglio direttamente nella query?

  • Creatore Discussione Creatore Discussione Malware
  • Data di inizio Data di inizio

Malware

Utente Attivo
19 Lug 2012
112
0
0
Forse dal titolo non si capisce molto..
ah si, comunque buona sera a tutti:fonzie:

Io è da mesi che per decrementare un numero nel db, lo estraggo, faccio la differenza e lo updato.
Questo metodo ha bisogno di due query (estrazione e update).

Magicamente a scuola ho scoperto che si può farlo direttamente dalla query:book: : (non prendetemi per ingorante eheh)
PHP:
$query="UPDATE ".prefix_tb."risorse SET legno = legno-".$requisito1." WHERE idcitta = ".$_SESSION["polis"][prefix_s];

Domanda: quale dei due è migliore in velocità/sicurezza/impegno del database?

Ora provo a dirlo io, ma correggetemi se sbaglio:

Velocità: non cambia di molto, ma il secondo metodo è più veloce, una sola query
Sicurezza: e qui? io direi secondo metodo ma non sono sicuro...
Impegno del database: anche qua il secondo metodo

So che sembra stupida come domanda, ma voglio capire bene

Grazie a tutti in anticipo
 
ciao
una query sola fa prima di due (anche se forse non te ne accorgi).
per la sicurezza è sempre importante controllare e validare i dati che entrano nella query soprattutto se provengono da un form o da una querystringa, cioe raccolto con $_POST o $_GET.
es mi sembra nel tuo caso verificare che $requisito1 sia un numero
 
Ahia me ne ero dimenticato...is_numeric() giusto? e restituisce true o false...grazie^^
 
ciao
is_numeric($numero) per verificare se è un numero
is_int($numero) per verificare se è un numero intero
is_float($numero) per verificare se è un numero float

restituiscono
true se numero del tipo richiesto altrimenti false
 
Per essere maggiormente sicuro puoi anche prendere solo il valore relativo al float o all'int della variabile

Esempio
PHP:
echo (int)$_GET['var'];
 

Discussioni simili