我有一个旧脚本,它只是将两组值插入到数据库中。有人告诉我,有比我在下面使用的更好的方法,谁能告诉我需要改变什么?
mysql_connect("server","user","password");
mysql_select_db("database");
$datainsert = "INSERT INTO form1
(name, message)
VALUES
('$name',
'$message_body')";
$result = mysql_query($datainsert);
if($result){
header('Location: success.html');
} else{
echo("<br>There was a problem.");
}
将 mysqL 替换为 mysqli 或 pdo。
最安全的方法是:
$mysqli = new mysqli("server","user","password", "database");
$stmt = $mysqli->prepare("INSERT INTO form1 (name, message) VALUES (?, ?)");
$stmt->bind_param('ss', $name, $message_body);
$stmt -> execute();
if($stmt) {
header('Location: success.html');
} else {
echo("<br>There was a problem.");
}
它使用MySQL Inproved,并且使用预处理语句(因此SQL注入是不可能的)。
只需从mysql_*
切换到mysqli_*
最接近现有代码的是使用 mysqli_*
但 请不要只是添加我并认为您的问题已解决。使用预准备语句,请查看此链接