使用HTML表单和PHP编写的语句

使用HTML表单和PHP编写的语句,php,mysqli,sql-injection,Php,Mysqli,Sql Injection,到目前为止,在处理HTML表单的输入时,我一直在使用预先准备好的语句和真正的_escape_字符串。例如: $var1 = $dbconnection->real_escape_string($_POST['varFromForm']); if ($insert = $dbconnection->prepare("INSERT etc.. ")) { $insert->bind_param('s', $var1); and so on.. 尽管如此,当在输

到目前为止,在处理HTML表单的输入时,我一直在使用预先准备好的语句和真正的_escape_字符串。例如:

$var1 = $dbconnection->real_escape_string($_POST['varFromForm']); 

if ($insert = $dbconnection->prepare("INSERT etc.. ")) {
    $insert->bind_param('s', $var1);
    and so on..
尽管如此,当在输入的文本区域中使用新的换行符时,\r\n会输出存储的数据,从而在显示数据时弄乱格式。这是因为它显然两次逃过了输入

因此,我想确保我没有误解预处理语句,并且通过使用预处理语句而不进行转义,以下代码不会受到SQL注入的影响

$var1 = $_POST['varFromForm'];

if ($insert = $dbconnection->prepare("INSERT etc.. ")) {
    $insert->bind_param('s', $var1);
    and so on..

已准备语句的sql查询执行计划不能由参数更改,只能插入参数。所以你不需要转义变量。

你是如何设置数据库连接的?在准备好的转义语句(和HTML表单)上,我明白了,谢谢大家的回答。所以我认为我现在很安全。谢谢你抽出时间。