Hier habe ich dann von der nativen Funktion escapeString gelesen. Die ist jetzt so nett und macht aus ' ein ". Und was, wenn der User jetzt Lil' John heisst?
HA!
Die Funktion macht _nicht_ aus ' ein ". Es sind zwei ' in kurzem Abstand. Das habe ich in dieser Ansicht nicht bemerkt. Sorry.
Allerdings: was soll daran jetzt sicher sein?
Zur Erklärung:
der query für die Funktion wird gebastelt aus zwei Arrays $keys und $vals
:
$query_keys = " (".implode(",", $keys).")";
$query_vals = " VALUES(".implode(" , ", $vals).")";
$query = "INSERT INTO '$table'".$query_keys.$query_vals;
Die Funktion escapeString wird _vorher_, beim Bau der Arrays auf alle Elemente angewendet, um die ', die ja auch im Query vorkommen, zu maskieren.