2011-06-16 20 views
7

我已经使用mysql_query()来做我的东西了,但现在我正在转移到准备语句有两个原因:
性能和没有SQL注入可能性PHP:准备好的语句(新手),只需要确认一下SQL注入

这是我如何使用它:

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(); 
    } 

我不消毒的三个变量($e_mail1,$username,$pass)当我把它们传递给函数或其他任何东西。

我这样做是正确的方式,还是我搞砸了某处或需要做别的事情? 我是这个新手(仍然通过文档),所以随时淋浴你的知识:D

谢谢!

+0

看起来是正确的,但你仍然可能想要消毒输入一点点... – tplaner 2011-06-16 14:56:29

+0

准备好的陈述将照顾你的消毒。请注意,它们不会阻止BAD数据进入数据库...只是您使用的数据不会“中断”查询,因此会导致语法错误或颠覆查询的目的。 – 2011-06-16 14:57:19

+1

@evolve你是什么意思? – alex 2011-06-16 14:57:29

回答

3

是的,你正在做的正确。