Ich füge einige Daten in eine MySQL-Tabelle mit CodeIgniter. Da ich INSERT IGNORE INTO
verwende und die Klasse der aktiven Datensätze nicht bearbeiten möchte, um diese Funktion zu aktivieren, erzeuge ich die SQL-Abfrage manuell.Escaping SQL-Abfragen in Codeigniter
$this->db->query("INSERT IGNORE INTO my_table(lat, lng, date, type)
VALUES ('" . $data['lat'] . "', '" . $data['lng'] . "', '" . $data['date'] . "', '" . $data['type'] . "')");
Problem: Die Abfrage ist fehlgeschlagen, wenn die Zeichenfolge in $data['type']
einen Apostroph enthalten. Wie kann ich es so machen, dass diese Zeichen, die maskiert werden müssen, automatisch entkernt werden, wie bei Verwendung von Active records?
Sie können dies noch einfacher machen: '$ this-> db-> query ($ sql, $ data);' Das funktioniert für mich! (Ich denke, Sie sollten keine anderen Schlüssel im Daten-Array haben, damit es funktioniert) – Saneem
Oder schreiben Sie es in Active Record Pattern um: $ $ this-> db-> Einfügung ('some_table', $ data); 'viel mehr geradlinig und sehr einfach. Stellen Sie nur sicher, dass kein primäres Primärschlüsselfeld in die 'insert()' Methode über 'if (! Isset ($ data ['id'])) springt. New {InvalidArgumentException ('data [id] ist nicht erlaubt für einfügen '); } ' – Roland