在这段代码中,我应该将 mysqli_real_escape_string() 放在哪里?
或者,如果您有更好的方法来编写整个 block ,我很想听听。
<?php
$title = ($_POST["title"]);
$date = ($_POST["date"]);
$content = ($_POST["content"]);
$query = "INSERT INTO months (";
$query .= " title, date, content ";
$query .= ") VALUES (";
$query .= " '{$title}', '{$date}', '{$content}' ";
$query .= ")";
mysqli_query($connection, $query); ?>
最佳答案
最好使用准备好的语句。
$stmt = mysqli_prepare($connection, "INSERT INTO months (title, date, content)
VALUES(?, ?, ?)");
mysqli_stmt_bind_param($stmt, "sss", $title, $date, $content);
$title = $_POST["title"];
$date = $_POST["date"];
$content = $_POST["content"];
mysqli_stmt_execute($stmt);
当使用转义函数和字符串连接时,仍然可能存在 SQL 注入(inject)的情况。准备好的语句的工作方式不同,因此它们可以安全地防止 SQL 注入(inject)。 https://stackoverflow.com/a/60496/3595565
关于PHP 和 MySQL 表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38682424/