0

我有一个旧脚本,它只是将两组值插入数据库。有人告诉我,有比我在下面使用的方法更好的新方法,谁能告诉我需要改变什么?

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.");
}
4

4 回答 4

1

用 mysqli 或 pdo 替换 mysql。

于 2013-09-12T14:31:34.240 回答
1

最安全的方法是:

$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 注入是不可能的)。

于 2013-09-12T14:39:29.163 回答
0

只需从 切换mysql_*mysqli_*

于 2013-09-12T14:31:49.487 回答
0

最接近现有代码的是使用 mysqli_*

请不要只添加i并认为您的问题已解决。使用准备好的语句,查看此链接

于 2013-09-12T14:34:26.217 回答