如何使用MySQLi保护SQLi的INSERT输入?

时间:2013-12-27 07:52:33

标签: php mysqli

我在我网站的联系页面上有这段代码:

$insert = $mysqli->prepare("INSERT INTO `contact` (`Name`, `Email`, `Subject`, `Priority`, `DisplayName`, `Message`, `IP`) VALUES (?,?,?,?,?,?,?)");
$insert->bind_param('sssisss', $_POST['name'], 
$_POST['email'],
$_POST['subject'],
$_POST['priority'],
$_POST['dispname'],
$_POST['query'],
$ip);

$insert->execute();
$newId = $insert->insert_id;
$insert->close();

它运行正常,但是,我的准备语句足以防止SQLi攻击吗? 这是我从mysql_ *转移后的第一个项目(我知道,对我不好,但现在我正在进行更改),我想知道在插入这些值之前我是否打算逃避其他任何事情?

1 个答案:

答案 0 :(得分:1)

是的,您使用 PreparedStatements 非常安全,并且您不必担心因为自动完成而进行转义。

如果您想详细了解这一点。见here