Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich mehrere Checkbox- und Textbox-Arrays in eine MySQL-Datenbank in PHP ein?

Wie füge ich mehrere Checkbox- und Textbox-Arrays in eine MySQL-Datenbank in PHP ein?

Susan Sarandon
Susan SarandonOriginal
2024-10-27 20:37:30481Durchsuche

How to Insert Multiple Checkbox and Textbox Arrays into a MySQL Database in PHP?

Einfügen mehrerer Kontrollkästchen- und Textfeld-Arrays in die MySQL-Datenbank in PHP

Einfügen mehrerer Kontrollkästchen-Arrays

Wenn Kontrollkästchenwerte nicht vorhanden sind Beim Einfügen in die Datenbank kann es zu einer Diskrepanz zwischen den Indizes des Namensattributs in unserem HTML und den PHP-Array-Elementen kommen. Um dieses Problem zu lösen, müssen wir explizit eindeutige Indizes für jedes Kontrollkästchenelement festlegen:

<code class="html"><input tabindex="1" name="checkbox[0]" type="checkbox" value="17" />

<input tabindex="1" name="checkbox[1]" type="checkbox" value="20" /></code>

Dadurch wird sichergestellt, dass jedes Kontrollkästchen seinen eigenen eindeutigen Index im Array $_POST['checkbox'] hat.

Verhindern, dass nicht aktivierte Kontrollkästchen eingefügt werden

Um zu verhindern, dass nicht aktivierte Kontrollkästchen in die Datenbank eingefügt werden, sollten wir explizit prüfen, ob jedes Kontrollkästchen aktiviert wurde, bevor sein Wert eingefügt wird:

<code class="php">if(isset($_POST['checkbox'])) {
    foreach($_POST['checkbox'] as $check) {
        if(!empty($check)) {

            $check = implode(',', $_POST['checkbox']);
            $name = implode(',', $_POST['item']);
            $quantity = implode(',', $_POST['quantity']);
        }
    }</code>

Verwenden der Methode „Prepared Statement“ für Einfügeabfragen

Anstelle der Verwendung von mysql_query wird empfohlen, vorbereitete Anweisungen für Einfügeabfragen zu verwenden, um SQL-Injection-Angriffe zu verhindern. So können Sie Ihre Einfügemethode ändern:

<code class="php">$stmt = $conn->prepare("INSERT INTO purchases (Product, Quantity, Price) VALUES (?, ?, ?)");
$stmt->bind_param("sis", $name, $quantity, $price);
foreach ($_POST['checkbox'] as $i => $price) {
    $name = $_POST['name'][$i];
    $quantity = $_POST['quantity'][$i];
    $stmt->execute();
}</code>

Weitere Überlegungen

  • Es empfiehlt sich, Preise aus der Datenbank abzurufen, anstatt sie fest in der Datenbank zu codieren HTML, um Manipulationen zu verhindern.
  • Vermeiden Sie das Mischen von MySQLi- und MySQL-APIs für die Datenbankverbindung und Abfrageausführung.

Das obige ist der detaillierte Inhalt vonWie füge ich mehrere Checkbox- und Textbox-Arrays in eine MySQL-Datenbank in PHP ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn