Cześć czy jest jakaś różnica w bezpieczeństwie między:
1. mysqli: prepare
np.
$stmt = $mysqli->prepare("SELECT * FROM myTable WHERE name = ? AND age = ?");
$stmt->bind_param("si", $_POST['name'], $_POST['age']);
$stmt->execute();
2. mysqli_real_escape_string
np.
function test($var) {
$var = mysqli_real_escape_string($system_db_link, stripslashes($var));
return $var;
}
Wtedy w czystym query np.:
'(...) WHERE user='.test($login).'LIMIT 1';
Co najlepiej używać? Najwygodniejsza byłaby opcja druga, bo można np. zrobić funkcje tak jak wyżej, więc będzie o wiele mniej linijek kodu.