我在我网站上添加一些文本的问题是否包含一些符号(例如",?,?,脚本或一些SQL标签)。
这里有一点代码,希望这已经足够了:)
if(isset($_POST['submit_achievement'])){
$title = $_POST['title_field'];
$description = $_POST['description_field'];
$sql2 = 'INSERT INTO achievements (title,description) VALUES (' . '"' .$title . '"'. "," . '"' . $description . '"' . ')';
$records2 = mysqli_query($conn,$sql2);
}
如果您需要从我的代码中使用更多行,请非常感谢!:)
这里的问题是您没有使用准备好的语句,也没有正确地逃脱事物,因此某些符号与SQL冲突。一般而言,这意味着您容易受到SQL注入错误的影响。
切换使用参数化查询和bind_param
来解决此问题:
$stmt = mysqli_prepare($conn, "INSERT INTO achievements (title, description) VALUES (?,?)");
$stmt->bind_param("ss", $_POST['title_field'], $_POST['description_field']);
注意,请尽量避免将冗余物放入诸如_field
之类的名称中。如果它是表格提交,则假定它是一个字段。