到目前为止,在处理来自 HTML 表单的输入时,我一直在使用准备好的语句和 real_escape_string。例子:
$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..