これまで、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 を出力して、保存されたデータを表示するときに書式設定が台無しになりました。これは、明らかに入力を 2 回エスケープしたためです。
だから私は準備されたステートメントとの取り引きを誤解していないこと、そしてこの次のコードがエスケープなしで準備されたステートメントを使用することによってSQLインジェクションから安全であることを確認したいですか?
$var1 = $_POST['varFromForm'];
if ($insert = $dbconnection->prepare("INSERT etc.. ")) {
$insert->bind_param('s', $var1);
and so on..