2011-06-16 13 views
7

Ho usato a lungo mysql_query() per fare le mie cose ma ora sto passando alle istruzioni preparate per due motivi:
prestazioni e nessuna sql injection possibilitàPHP: istruzioni preparate (newbie), è sufficiente confermare l'iniezione SQL

Questo è come mi sto usando:

function add_new_user($e_mail1,$username,$pass) 
    { 
    require_once "db.php"; 

$stmt = $mysqli->prepare("INSERT INTO un_users VALUES ('',?, ?,0,0,?,0)"); 
$stmt->bind_param('sss', $e_mail1, $username,$pass); 

$stmt->execute();  
$stmt->close(); 
    } 

non sto sanificazione delle tre variabili ($e_mail1,$username,$pass) quando li ho passati alla funzione o qualsiasi altra cosa.

Sto facendo il modo corretto o ho sbagliato da qualche parte o ho bisogno di fare qualcos'altro? Sono un principiante con questo (ancora esaminando i documenti) quindi sentiti libero di farti una doccia di conoscenza: D

Grazie!

+0

Sembra corretto, ma si potrebbe ancora voler disinfettare l'input un po '... – tplaner

+0

Le dichiarazioni preparate si prenderanno cura dell'igienizzazione per te. Intendiamoci, non impediscono ai dati BAD di entrare nel db ... solo che i dati che stai utilizzando non "interromperanno" la query, quindi causano un errore di sintassi o sovvertono lo scopo della query. –

+1

@evolve Cosa intendi con questo? – alex

risposta

3

Sì, lo stai facendo correttamente.

Problemi correlati