und falls Unstimmigkeiten existieren, wird das Script sofort abgebrochen.
Das hört sich nicht "nett" gegenüber dem Endbenutzer an.
- Da ich bei DB Abfragen nicht nur mit Zahlen (ID) arbeite sondern auch mit Buchstaben / Wörter, weiß ich nicht wie ich diese behandeln soll zwecks einer Prüfung.
Kontextgerecht ;)
Für eine Prüfung auf Zahlen bietet sich ja regelrecht is_numeric an,
Nicht wirklich - "deadbeef" ist z.B. numeric.
was mache ich aber bei Wörter (Wörter mit Apostroph wie Bistro's), wäre da preg_match Sinnvoll oder habt Ihr einen besseren Vorschlag?
Entsprechend maskieren, wie schon gesagt - kontextgerecht behandeln. PHP sieht hierfür eben mysql_real_escape_string() vor.
- Aus Testzwecken frage ich die Datenbank momentan so ab:
$sich = "Op's";
$abfrage="SELECT ID,Kategorie,Sich,Event,Bild FROM 01_daten WHERE Sich LIKE BINARY'".mysql_real_escape_string($sich)."' AND Kategorie = '".mysql_real_escape_string($_POST[‘koi’])."' AND Event != '".mysql_real_escape_string($_POST[‘eve’])."' ORDER BY Event ASC";
Was hat's mit BINARY aufsich?
Warum $_POST[‘eve’] und nicht $_POST['eve']?
Ist das mysql_real_escape_string so richtig gesetzt oder wäre nachfolgendes Beispiel besser:
$sich = "Op's";
$sich = mysql_real_escape_string($sich);
$kategorie = mysql_real_escape_string($_POST['koi']);
$event = mysql_real_escape_string($_POST['eve']);
Besser nicht, aber übersichtlicher. Für das gibt es aber bereits vorgefertigtigte Funktionen (sprintf() z.B.).